日志是每个项目中必不可少的,通过日志的分析,可以方便用户了解系统或软件、应用的运行情况,从而帮助我们完善系统。
目前功能比较全面的第三方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的安装
个人观点:
Monolog:大项目首选推荐,基本需要的功能都有。
SeasLog:如果你特别在意日志的性能问题,并且不嫌组件库配置麻烦,就选择SeasLog,大项目中可以尝试,小项目就算了,别折腾。
Log4php:不推荐使用,官方基本已经不更新了,如果你非常熟悉log4j,倒是可以尝试使用。
KLogger:如果你只需要记录一下debug、info、notice之类的信息而不需要做其它进一步处理,强烈推荐KLogger。