日志记录工具_日志处理

日志是每个项目中必不可少的,通过日志的分析,可以方便用户了解系统或软件、应用的运行情况,从而帮助我们完善系统。

目前功能比较全面的第三方PHP开源日志框架有Monolog、SeasLog、log4php等,其中以log4php最为著名,设计精良、格式完美、文档完善、功能强大;Monolog功能较全而且易于扩展,被集成在很多PHP开源框架之中;SeasLog功能也很强大并且有着C语言般的卓越性能,而且是国人所创。当然还有很多小巧实用的开源日志框架,如KLogger,简单易用,很适合小项目中使用。 Monolog

日志是每个项目中必不可少的,通过日志的分析,可以方便用户了解系统或软件、应用的运行情况,从而帮助我们完善系统。目前功能比较全面的第三方PHP开源日志框架有Monolog、SeasLog、log4php等,其中以log4php最为著名,设计精良、格式完美、文档完善、功能强大;Monolog功能较全而且易于扩展,被集成在很多PHP开源框架之中;SeasLog功能也很强大并且有着C语言般的卓越性能,而且是国人所创。当然还有很多小巧实用的开源日志框架,如KLogger,简单易用,很适合小项目中使用。

Monolog 官网:​​https://github.com/Seldaek/monolog​

Monolog是php下比较全又容易扩展的记录日志组件。目前有包括Symfony 、Laravel、 CakePHP等诸多知名php框架都内置了Monolog。 Monolog可以把你的日志发送到文件,sockets,收件箱,数据库和各种web服务器上。一些特殊的组件可以给你带来特殊的日志策略。 每个Logger实例都有一个通道和日志处理器栈。每当你添加一条日志记录,它会被发送到日志处理器栈。 你可以创建很多Logger,每个Logger定义一个通道(db,请求,路由),每个Logger有很多日志处理器。这些通道会过滤日志。 每个日志处理器都有一个Formatter(内置的日志显示格式处理器)。你还可以设定日志级别。 日志级别 – DEBUG:详细的debug信息 – INFO:感兴趣的事件。像用户登录,SQL日志 – NOTICE:正常但有重大意义的事件。 – WARNING:发生异常,使用了已经过时的API。 – ERROR:运行时发生了错误,错误需要记录下来并监视,但错误不需要立即处理。 – CRITICAL:关键错误,像应用中的组件不可用。 – ALETR:需要立即采取措施的错误,像整个网站挂掉了,数据库不可用。这个时候触发器会通过SMS通知你。 SeasLog 官网:​​https://github.com/Neeke/SeasLog​

SeasLog是用C语言编写的PHP扩展库,功能强大而且性能极高,但是需要把它集成配置到php.ini,使用之前的准备工作稍有些烦琐。 SeasLog功能非常丰富,基本能满足大项目日志系统的各项需求 – 分模块、分级别 – 配置简单 – 日志格式清晰易读 – 应用简单、性能很棒 – 便捷、规范的log记录 – 高效的海量log分析 – 可配置、多途径的log预警 – 可配置的默认log目录与模块 – 指定log目录与获取当前配置 – 初步的分析预警框架 – 高效的日志缓冲、便捷的缓冲debug – 遵循 PSR-3 日志接口规范 – 自动记录错误信息 – 自动记录异常信息 – 连接TCP端口发送 – 连接UDP端口发送   seaslog的安装 

//1.下载扩展
wget http://pecl.php.net/get/SeasLog-1.6.8.tgz

//2.解压文件
tar -zxvf SeasLog-1.6.8.tgz


//3.编译
phpize 产生一个configure文件

//4. 检测
./configure--with-php-config=/usr/bin/php-config
//--with-php-config 自己的配置文件

//5. 安装
make && make install

//6. 在php.ini文件中配置SeasLog信息
extension=seaslog.so


//其他参数也可以进行配置,需要的可以查看官网进行相应的配置
easlog.default_basepath
= /var/log/

seaslog.default_logger
= default

seaslog.disting_type
= 1

seaslog.disting_by_hour
= 1

seaslog.use_buffer
= 1

seaslog.buffer_size
= 100

seaslog.level
= 0

seaslog.trace_error
= 1

seaslog.trace_exception
= 0

seaslog.default_datetime_format
= "%Y:%m:%d %H:%M:%S"

//7.重启服务器
service nginx reload
or
service php-fpm reload

 

 

个人观点:

Monolog:大项目首选推荐,基本需要的功能都有。 SeasLog:如果你特别在意日志的性能问题,并且不嫌组件库配置麻烦,就选择SeasLog,大项目中可以尝试,小项目就算了,别折腾。 Log4php:不推荐使用,官方基本已经不更新了,如果你非常熟悉log4j,倒是可以尝试使用。 KLogger:如果你只需要记录一下debug、info、notice之类的信息而不需要做其它进一步处理,强烈推荐KLogger。