Cómo registrar un mensaje de error en drupal


Cómo registrar nuestros propios mensajes de error (por ejemplo: error debido a una entrada de fecha de usuario no válida) que se genera en php programa a drupal registro de errores.

Author: ArK, 2009-11-10

7 answers

Puede utilizar el watchdog función :

watchdog($type, $message, $variables = array(), $severity = WATCHDOG_NOTICE, $link = NULL)

Citando el manual, los parámetros son:

  • $type La categoría a la que pertenece este mensaje.
  • $message El mensaje a almacenar en el registro.
  • $variables Array de variables a reemplazar en el mensaje en pantalla o NULL si el mensaje ya está traducido o no es posible traducir.
  • $severity La gravedad del mensaje, según RFC 3164
  • $link Un enlace para asociarse con el mensaje.

Y los niveles de error se pueden encontrar en la página de watchdog_severity_levels. Para un error, lo más probable es que use WATCHDOG_ERROR, o tal vez incluso algo más "crítico", dependiendo del tipo de error.

 46
Author: Pascal MARTIN,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-11-10 05:45:15

1) De hecho, watchdog es una forma estándar de registrar errores propios de PHP.

2) Alternativamente, si necesita ver inmediatamente mensajes de error mientras depura sus páginas de Drupal, es posible que desee verlas registradas/impresas directamente en la página relacionada - en la consola FireBug. A veces es esto muy conveniente cuando se pueden ver los registros just-in-time relacionados con la página. Esto requiere - Devel módulo, Firebug extensión para FireFox y posiblemente Firephp.

Puede utilizar el dfb() función para escribir mensajes de registro directamente en la consola general Firebug.

dfb($input, $label = NULL)

Si desea mantener sus mensajes de registro relacionados con Drupal fuera de la consola Firebug normal, puede escribir mensajes en el registro de Drupal para Firebug con la función firep ():

firep($item, $optional_title)
 6
Author: AlexA,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-05-30 17:18:41

Drupal 8

// Logs a notice
\Drupal::logger('my_module')->notice($message);
// Logs an error
\Drupal::logger('my_module')->error($message);

Vea más ejemplos en Cómo Registrar Mensajes en Drupal 8.

 6
Author: milkovsky,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-03-21 17:02:45

Watchdog es el camino a seguir para un sistema de producción, sin duda, pero durante la depuración encuentro útil la función drupal_set_message.

Envía el mensaje a la pantalla donde normalmente se muestran los mensajes de tipo 'Operación Exitosa'(así que asegúrese de eliminarlos antes de hacer que el sitio funcione).

Http://api.drupal.org/api/function/drupal_set_message/6

 3
Author: DilbertDave,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-11-10 08:54:17

En drupal 7 podemos registrar el mensaje mediante el siguiente método:

Drupal watchdog función que podemos utilizar para registrar el mensaje en la base de datos , asegúrese de que hemos habilitado el módulo core opcional para el Registro de la base de datos en /admin/build/modules.

watchdog($type, $message, $variables = array(), $severity = WATCHDOG_NOTICE, $link = NULL)

$tipo: La categoría a la que pertenece este mensaje, Ejemplo: PHP, cron.., podemos filtrar el mensaje por tipo.

$mensaje: El mensaje a almacenar en el registro,Ejemplo: 'El siguiente módulo falta en el archivo sistema: security_review'

$variables: Array de variables a reemplazar en el mensaje en pantalla o NULL si el mensaje ya está traducido o no es posible traducir. para hacer que el mensaje se traduzca , no pase valor dinámico las variables de paso en el mensaje se deben agregar utilizando cadenas de marcador de posición.

Ejemplo: watchdog ('cg_volunteer', 'cg in form_alter % formly', array ('%formly ' = > form form ['#id']), WATCHDOG_NOTICE ,link link = NULL);

$gravedad La gravedad del mensaje,los registros se pueden filtrar por gravedad según RFC 3164. Los valores posibles son WATCHDOG_ERROR, WATCHDOG_WARNING, etc. Para más ejemplos ver https://api.drupal.org/api/drupal/includes! bootstrap. inc / function / watchdog / 7. x

$link : Un enlace para asociar con el mensaje.

Ejemplo

/ / para avisos de registros

watchdog('my_module', $message, array());

/ / para Error de Registro

watchdog('my_module', $message, array(), WATCHDOG_ERROR);

En drupal 8 utilizamos el siguiente método:

// Para registrar un aviso.

\Drupal::logger('my_module')->notice($message);

// Para Registrar un error.

\Drupal::logger('my_module')->error($message);

// Para la alerta, deben tomarse medidas inmediatamente.

\Drupal::logger('my_module')->alert($message);

// Para el mensaje crítico.

\Drupal::logger('my_module')->critical($message);

// Para mensajes a nivel de depuración.

\Drupal::logger('my_module')->debug($message);

//Para emergencias, el sistema no se puede utilizar.

\Drupal::logger('my_module')->emergency($message);

/ / Para Advertencia

\Drupal::logger('my_module')->warning($message);

//Para mensajes informativos.

\Drupal::logger('my_module')->info($message);

También para traducir no debemos usar t() función.

\Drupal::logger('my_module')->alert('Message from @module: @message.', [
'@module' => $module,
'@message' => $message,
]);

Esto se traducirá en tiempo de ejecución.

Ejemplo :

\Drupal::logger('content_entity_example')->notice('@type: deleted %title.',
array(
'@type' => $this->entity->bundle(),
'%title' => $this->entity->label(),
));
 2
Author: SynapseIndia,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-04-05 10:45:36

Tanto watchdog para D7 como \Drupal::logger para D8 escribirán log en la tabla watchdog (en su base de datos), y con datos ENORMES registrados, puede imaginar el impacto en el rendimiento.

Puede usar error_log la función php para hacerlo (ver manual de PHP).

error_log("Your message", 3, "/path/to/your/log/file.log");

Necesita tener permiso para escribir en su archivo de registro(/path/to/your/log/file.log)

Drupal-8drupalphplog

 1
Author: kaay,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-20 08:37:03
// Get logger factory.
$logger = \Drupal::service('logger.factory');

// Log a message with dynamic variables.
$nodeType = 'Article';
$userName = 'Admin';
$logger->get($moduleName)->notice('A new "@nodeType" created by %userName.', [
    '@nodeType' => $nodeType,
    '%userName' => $userName,
]);

Fuente

 0
Author: Santo Boldižar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-10-03 09:59:29