首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

PEAR LOG日记系统

2013-01-20 
PEAR LOG日志系统在健壮的软件体系里面,日志扮演着十分重要的角色。日志系统设计的好坏,直接影响到软件运行

PEAR LOG日志系统
在健壮的软件体系里面,日志扮演着十分重要的角色。日志系统设计的好坏,直接影响到软件运行的可靠性。PEAR的LOG是一个小巧实用的日志系统,可以将日志记录到文件、数据库、系统日志,或输出到控制台。
简单的例子

Jan 15 16:42:05  [debug] check it outJan 15 16:42:05  [warning] you have a emergencyJan 15 16:42:05  [error] something terrible happenedJan 15 16:42:05  [info] 再见
高级用法完整的singleton

string  $handler  —  日志保存类型,可选择 'console', 'syslog', 'sql', 'file', and 'mcal'.string  $name  —  保存位置,文件日志路径,或者数据表名称,或指定其他位置。默认位置取决于选择哪种日志类型。string  $ident  —  日志签名,可以理解为分类array  $conf  —  其他设置,用关联数组表示int  $level  —  记录的级别,只记录不低于这个级别的事件,默认是PEAR_LOG_DEBUG。其他级别从低到高有:PEAR_LOG_NONE, 
PEAR_LOG_ALL, PEAR_LOG_DEBUG, PEAR_LOG_INFO, PEAR_LOG_NOTICE, PEAR_LOG_WARNING, PEAR_LOG_ERR, PEAR_LOG_CRIT, 
PEAR_LOG_ALERT, PEAR_LOG_EMERG

日志级别在开发阶段,可以把级别设置为PEAR_LOG_DEBUG,在产品阶段再调为PEAR_LOG_INFO,则所有Log::debug()将被忽略。
文件锁在并行环境中(如web访问),可能有多个线程同时请求日志写操作,可能破坏内容的格式。将$conf[ 'locking' ]设置为1,则一个时间只有一个线程可以写日志,其他线程进入阻塞等待。
自动截断PEAR LOG不支持rotating,如果选的是文件日志,只好自己动手去做日志截断。在开启了$conf['locking']的情况下,不建议通过系统命令去截断日志文件。我们可以用当前日期作为日志保存路径,例如,将一周的日志放在一个文件里$logfile = 'logs/mylog-'.date('YW', time());
完整代码
Jan 15 18:09:15 DEMO [warning] you have a emergencyJan 15 18:09:15 DEMO [error] something terrible happenedJan 15 18:09:15 DEMO [info] 再见

热点排行