PEAR LOG日志系统

PEAR LOG 日志系统详解
本文介绍了 PEAR 的 LOG 库,一个灵活且强大的 PHP 日志解决方案。文章提供了使用示例,展示了如何配置不同的日志级别、实现文件锁定及日志文件自动截断等高级功能。
在健壮的软件体系里面,日志扮演着十分重要的角色。日志系统设计的好坏,直接影响到软件运行的可靠性。PEAR的LOG是一个小巧实用的日志系统,可以将日志记录到文件、数据库、系统日志,或输出到控制台。

简单的例子

include 'Log.php';
$log = Log::singleton("file" , HOME_DIR.'/var/logs/feedbowl.log');
$log->debug("check it out");
$log->warning("you have a emergency");
$log->err("something terrible happened");
$log->info("再见");



记录的日志内容:

Jan 15 16:42:05  [debug] check it out
Jan 15 16:42:05  [warning] you have a emergency
Jan 15 16:42:05  [error] something terrible happened
Jan 15 16:42:05  [info] 再见

高级用法
完整的singleton
object Log singleton( string $handler, [string $name = ''], [string $ident = ''], [array $conf = array()], [int $level = PEAR_LOG_DEBUG])



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

完整代码

include 'Log.php';
$logfile = HOME_DIR. '/var/logs/feedbowl-'.date( 'YW' , time()).'.log' ;
$conf = array(
       'locking' => 1
);
$log = Log:: singleton("file" , $logfile, 'DEMO', $conf, PEAR_LOG_INFO);
$log->debug( "check it out");
$log->warning( "you have a emergency");
$log->err( "something terrible happened");
$log->info( "再见");

日志内容:
Jan 15 18:09:15 DEMO [warning] you have a emergency
Jan 15 18:09:15 DEMO [error] something terrible happened
Jan 15 18:09:15 DEMO [info] 再见


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值