x2ts日志的一些变化

这次重构x2ts框架的时候,日志模块也在大调之列。最主要的变化当属放弃了原来的直接写入日志文件的做法,改为使用monolog作为日志处理模块。monolog把记录日志这件事划分成了LoggerHandlerFormatter三个部分。Logger负责和应用程序对接,提供诸如noticewarning这样的简便接口,也提供addRecord这样的通用接口。Handler负责日志的处理和输出,可以输出到stderr,也可以把文件、网络、命名管道、syslog、消息队列、PHPConsole等等作为输出日志的目标。Formatter负责日志输出前的格式化,可以把日志文本和元信息(比如时间、进程号等)格式化成指定的样子。

以前日志函数在x2ts\Toolkit中提供,一个是log还有一个是trace,现在Logger是一个独立的x2ts组件类,它是核心组件之一,不论是否在配置中定义始终都可以使用(如果没有定义输出目标,默认会输出到stderr)。在日志消息等级方面,以前的DEBUG、NOTICE、WARNING、ERROR共4个级别被扩展成monolog所定义的8个级别:DEBUG、INFO、NOTICE、WARNING、ERROR、CRITICAL、ALERT、EMERGENCY。

调用日志的方式也改为使用logger组件:

X::logger()->info($someMessage);

为了方便日志在各种Handler中输出,原来日志中夹带的Unix Console颜色字符从日志中去掉了,现在的日志文件只有纯文本数据。如果想看带颜色的日志需要使用开发机上的colorlog脚本。

tail -f app.log | colorlog

现在日志的输出等级依然是debug模式输出DEBUG以上的日志,非debug模式输出NOTICE级别以上的日志。在新的级别体系中,INFO级别的日志可以用于区分框架输出的trace log

标签: x2ts, monolog

添加新评论