watchdog() 函数是Drupal的核心函数,它为 Drupal 提供了一个日志机制,收集所有必要的日志信息或事件。
在admin/reports/dblog中,就是Recent log messages 中,可以查看这个日志。
函数用法
watchdog($type, $message, $variables = array(), $severity = WATCHDOG_NOTICE, $link = NULL)
$type,是日志分类。一般,使用模块名作为日志分类,便于查找某个模块的错误信息。
$message, 将储存信息在日志中。如果是变量应该用占位符来添加。
$variables,是与$message的关联数组。
$severity ,常量,表明消息的优先级,就是消息的重要性。
$link,可选的第五个参数,允许你传入一个相关的URL。日志后端可能使用它生成嵌入日志消息的链接。
$severity中有8个不同的常量可以传入这个函数:
- WATCHDOG_EMERGENCY: Emergency, system is unusable.
- WATCHDOG_ALERT: Alert, action must be taken immediately.
- WATCHDOG_CRITICAL: Critical conditions.
- WATCHDOG_ERROR: Error conditions.
- WATCHDOG_WARNING: Warning conditions.
- WATCHDOG_NOTICE: (default) Normal but significant conditions.
- WATCHDOG_INFO: Informational messages.
- WATCHDOG_DEBUG: Debug-level messages.
例如:smtp模块中的两处watchdog语句,分别用到了前三个和前四个参数:
watchdog('smtp', 'Sending mail to: @to', array('@to' => $to));
watchdog('smtp', 'Error sending e-mail from @from to @to : !error_message', array('@from' => $from, '@to' => $to, '!error_message' => $mailer->ErrorInfo), WATCHDOG_ERROR)