Como registar a mensagem de erro no drupal

Como registar as nossas próprias mensagens de erro (para ex: erro devido a um item inválido de data de utilizador) que é gerado em php para registo de erros drupal.

Author: ArK, 2009-11-10

7 answers

Podes usar o watchdog Função :

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

Citando o manual, os parâmetros são:

  • {[2] } a categoria A que esta mensagem Pertence.
  • $message a mensagem a guardar no registo.
  • $variables lista de variáveis a substituir na mensagem em exibição ou nula se a mensagem já estiver traduzida ou não for possível traduzir.
  • {[5] } a gravidade da mensagem, de acordo com a RFC 3164
  • $link uma ligação para associar com mensagem.

E os níveis de erro podem ser encontrados na página de watchdog_severity_levels. Para um erro, você provavelmente vai usar WATCHDOG_ERROR, ou talvez até mesmo algo mais "crítico", dependendo do tipo de erro.

 46
Author: Pascal MARTIN, 2009-11-10 05:45:15

De facto, o watchdog é uma forma normal de registar os próprios erros do PHP.

2) em alternativa, se precisar de ver imediatamente as mensagens de erro enquanto depila as suas páginas Drupais, poderá querer vê - las registadas/impressas à direita na consola de FireBug correspondente. Às vezes é muito conveniente quando você pode ver registros relacionados com páginas just-in-time. Isto requer - Devel Módulo, Firebug extensão para FireFox e possivelmente Firephp.

Pode usar o função dfb () para escrever mensagens de log diretamente para a consola geral Firebug.

dfb($input, $label = NULL)

Se quiser manter as suas mensagens de registo relacionadas com o Drupal fora da consola normal do Firebug, poderá escrever mensagens para o Drupal para o Firebug log com a função firep ():

firep($item, $optional_title)
 6
Author: AlexA, 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);

Ver mais exemplos em Como registar as mensagens no Drupal 8 .

 6
Author: milkovsky, 2016-03-21 17:02:45

Watchdog é o caminho para um sistema de produção, sem dúvida, mas durante a depuração acho a função {[[0]} útil.

Ele emite a mensagem para o ecrã onde as mensagens do tipo "operação bem sucedida" são normalmente apresentadas (por isso, certifique-se que as remove antes de fazer o site viver).

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

 3
Author: DilbertDave, 2009-11-10 08:54:17

No drupal 7 podemos registar a mensagem pelo seguinte método:

Função Drupal watchdog que podemos usar para registar a mensagem na base de dados , certifique-se que activámos o módulo core opcional para registar a base de dados em /admin/build/módulos.

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

$Tipo: A categoria A que esta mensagem Pertence , exemplo: PHP,cron.., podemos filtrar a mensagem por tipo.

$mensagem: A mensagem a guardar no registo, por exemplo: 'falta o seguinte módulo do ficheiro sistema: security_ review "

$variáveis: Lista de variáveis a substituir na mensagem exibida ou nula se a mensagem já estiver traduzida ou não for possível traduzir. para fazer a mensagem traduzida, não passar variáveis dinâmicas de passagem de valor na mensagem deve ser adicionado usando strings de substituição.

Exemplo: watchdog ('cg_volunteer',' cg in form_alter %formly', array ('%formly ' = > $form ['#id']), WATCHDOG_ notice, $link = NULL);

$gravidade A gravidade da mensagem,logs podem ser filtrados por gravidade como por RFC 3164. Os valores possíveis são WATCHDOG_ error, WATCHDOG_ warning, etc. Por exemplo, ver https://api.drupal.org/api/drupal/includes! bootstrap. inc / function/watchdog / 7. x

$relação : Um link para associar com a mensagem.

Exemplo

/ / para registos

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

/ / por erro de Registo

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

Em drupal 8 utilizámos o seguinte método:

/ / para Logs um aviso.

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

/ / para Logs um erro.

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

/ / para Alerta, devem ser tomadas medidas imediatamente.

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

/ / para mensagem crítica.

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

/ / para mensagens ao nível da depuração.

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

/ / para emergências, o sistema está inutilizável.

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

/ / Para Aviso

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

/ / para mensagens informativas.

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

Também para traduzir não devemos usar t() funcao.

\Drupal::logger('my_module')->alert('Message from @module: @message.', [
'@module' => $module,
'@message' => $message,
]);
Isto será traduzido em tempo de execução.

Exemplo :

\Drupal::logger('content_entity_example')->notice('@type: deleted %title.',
array(
'@type' => $this->entity->bundle(),
'%title' => $this->entity->label(),
));
 2
Author: SynapseIndia, 2018-04-05 10:45:36

Tanto o watchdog para o D7 & \Drupal::logger para o D8 irá gravar o log na tabela watchdog (na sua base de dados), e com enormes dados registados, Você pode imaginar o impacto do desempenho.

Pode usar a função error_log php para o fazer (ver PHP manual).

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

Você precisa de permissão para escrever no seu ficheiro de Registo(/path/to/your/log/file.log)

Drupal-8drupalphpregisto

 1
Author: kaay, 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,
]);

Origem

 0
Author: Santo Boldižar, 2018-10-03 09:59:29