Pergunta

Como fazer o nosso próprias mensagens de erro(por ex:erro devido a um usuário inválido data de entrada), que é gerado no php programa para o drupal log de erro.

Foi útil?

Solução

Você pode usar o watchdog função :

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

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

  • $type A categoria à qual esta mensagem pertence.
  • $message A mensagem para armazenar em log.
  • $variables Matriz de variáveis para substituir a mensagem no visor ou NULL se a mensagem já está traduzido ou não possível traduzir.
  • $severity A gravidade da mensagem, conforme a RFC 3164
  • $link Um link para associar com a mensagem.

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

Outras dicas

Drupal 8

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

Veja mais exemplos em Como registrar mensagens no Drupal 8.

1) De fato, o cão de guarda é uma maneira padrão de registrar erros de PHP próprios.

2) Como alternativa, se você precisar ver imediatamente as mensagens de erro ao depurar suas páginas do Drupal, convém vê -las registradas/impressas diretamente na página relacionada - no console do Firebug. Às vezes, isso é muito conveniente quando você pode ver logs justos relacionados à página. Isto exige - Devel módulo, Firebug extensão para o Firefox e possivelmente Firephp.

Você pode usar a função dfb () para gravar mensagens de log diretamente no console geral do Firebug.

dfb($input, $label = NULL)

Se você deseja manter suas mensagens de log relacionadas ao Drupal fora do console normal do Firebug, você pode escrever mensagens para o Drupal para Firebug Faça log com a função Firep ():

firep($item, $optional_title)

Watchdog é o caminho a seguir para um sistema de produção, sem dúvida, mas durante a depuração, encontro o drupal_set_message função útil.

Ele gera a mensagem para a tela em que as mensagens 'Operação bem-sucedida' são normalmente exibidas (portanto, remova-as antes de divulgar o site).

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

No drupal 7 podemos mensagem de log pelo seguinte método:

o drupal função watchdog podemos usar a mensagem de log no banco de dados , certifique-se de que temos habilitado opcional módulo de núcleo para o Banco de dados de Log em /admin/build/modules.

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

$tipo: A categoria à qual esta mensagem pertence , Exemplo:PHP,cron.., podemos mensagem de filtro por tipo.

$mensagem : A mensagem de armazenar em log,Exemplo:"O módulo seguinte está em falta a partir do ficheiro de sistema:security_review'

$variáveis : Matriz de variáveis para substituir a mensagem no visor ou NULL se a mensagem já está traduzido ou não possível traduzir.para tornar a mensagem traduzida , não passam de valor dinâmico passar variáveis da mensagem deve ser adicionado por meio de seqüências de caracteres de espaço reservado.

Exemplo: cão de guarda('cg_volunteer', 'cg em form_alter %formly', array('%formly' => $form['#id']), WATCHDOG_NOTICE, $link = NULL);

$gravidade A gravidade da mensagem,os logs podem ser de filtro por gravidade, conforme a RFC 3164.Valores possíveis são WATCHDOG_ERROR, WATCHDOG_WARNING, etc.Para mais um exemplo de veja https://api.drupal.org/api/drupal/includes!bootstrap.inc/função/watchdog/7.x

$link:Um link para associar com a mensagem.

Exemplo

// para logs de avisos

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

// para iniciar sessão Erro

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

No drupal 8 usamos o seguinte método:

// Para os Logs de um aviso prévio.

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

// Para Registos de um erro.

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

// Para o Alerta, a ação deve ser tomada imediatamente.

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

// Para a mensagem de Crítica.

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

// Para mensagens de nível de Depuração.

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

//Para casos de Emergência, 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() função.

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

isso 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(),
));

Ambos watchdog para d7 e \Drupal::logger Para D8, escreverá o login watchdog tabela (em seu banco de dados) e com Dados enormes registrados, você pode imaginar o impacto do desempenho.

Você pode usar error_log função php para fazer isso (veja Manual do PHP).

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

Você precisa ter permissão para escrever em seu arquivo de log (/path/to/your/log/file.log)

// 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,
]);

Fonte

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top