欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

drupal 错误日志

shiping1 的头像

watchdog() 函数, 为 Drupal 提供了一个日志机制

猪跑啦独家原创专稿,欢迎您转载本文,转载请注明来源。
标签: watchdog

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)

来来自 http://www.drupalla.com/node/1514

 

admin/reports/dblog  最近的日志条目

 

Drupal专业开发指南 第22章 管理已验证用户的访问

管理已验证用户的访问

由于Drupal可以为匿名用户提供缓存了的页面,而匿名用户一般也不需要与Drupal进行交互,你可能想要减少用户登录停留的时间,或者更疯狂一点,一旦用户关闭他们的浏览器就使他们退出。通过调整settings.php文件中的cookie生存周期来做到这一点。在下面这行代码中,我们将它的值改为24小时:
 
ini_set('session.cookie_lifetime', 86400); // 24 hours (in seconds)
 
而在这里一旦用户关闭浏览我们就将他们登出:
 
ini_set('session.cookie_lifetime', 0); // When they close the browser.
 
settings.php中的默认值(2,000,000秒)能够允许用户保持登录大约3周的时间(在此期间会话垃圾收集系统不会将他们的会话记录从sessions表中删除)。
 
清除错误报告日志
Drupal为模块开发者提供了watchdog()函数,使用它可以将信息写入到日志中。Drupal内置了两种方式,一种是记录到数据库中,另一种是记录到syslog中。
 
严重性级别
调用watchdog()时,PHP代码所使用的严重性级别符合RFC 3164,如表22-1所示。
 
 22-1. Drupal看门狗系统的常量和严重性级别
Drupal 常量     整数     严重性级别
WATCHDOG_EMERG     0    紧急: 系统不可用
WATCHDOG_ALERT     1    警报: 需立即采取行动
WATCHDOG_CRITICAL  2    关键: 关键条件
WATCHDOG_ERROR     3    错误:错误条件
WATCHDOG_WARNING   4    警告: 警告条件
WATCHDOG_NOTICE    5    通知: 一般的,但是重要的消息
WATCHDOG_INFO      6    信息: 一般消息
WATCHDOG_DEBUG     7    调试: 调试级别消息
 
记录到数据库中
Drupal内置的数据库日志模块默认是启用的,可以在“管理➤报告➤最近的日志条目”查看日志条目。数据库中的watchdog表,用来存储日志信息,如果不对其进行定期地清理的话,那么它就会快速的膨胀。如果你发现watchdog表的大小导致了你的站点运行缓慢,你可以通过在“管理➤站点配置➤日志与报警 ➤数据库日志”里来调整相关配置以减小它的大小。注意,对该设置的修改将在cron下次运行时生效。不能定期的运行cron会使得watchdog表越来越大,从而为系统增加极大的负担。
 
记录到Syslog
Drupal核心自带的syslog模块,默认是禁用的,它使用PHP的syslog()函数将watchdog()的调用写入到操作系统中。这一方式就绕开了数据库日志模块所需要的数据库插入操作。
 
普通分类: