标签归档:中文文档

【翻译】Monolog使用说明 – 即Monolog中文文档

前言

最近项目中使用的Monolog出了点小问题,去翻其文档,发现居然只有英文的。趁业余时间,翻译一下吧。以下是其使用说明中文翻译。更多翻译内容见clarence-pan/monolog-zh-doc.

使用 Monolo

安装

Monolog 在 Packagist monolog/monolog) 上可用,并且可以通过Composer安装:
composer require monolog/monolog
如果你不使用 Composer, 那你可以从 GitHub 上获取代码,然后使用任何兼容 PSR-0 的自动加载器(比如Symfony2 ClassLoader 组件)来加载 Monolog 的类

核心概念

每一个日志服务实例 Logger) 都有一个通道(名称),并有一个处理器 (Handler)栈. 无论何时你添加一条记录到对应的日志服务实例,这个处理器栈将被遍历一遍:每个处理器都将依次决定是否要处理这条记录,而如果要处理,则遍历结束(译注:类似DOM事件冒泡)。这样子可以创建非常灵活的日志配置。比如一个StreamHandler可以把所有日志都写入磁盘,而上面加个MailHandler可以把错误日志作为邮件发送出去。处理器还有一个$bubble属性定义了是否屏蔽某条记录或者处理了某条记录。在这个示例中,配置MailHandler$bubble参数为false则意味着MailHandler将不会把自己已处理过的记录继续冒泡给StreamHandler.你可以创建许多日志服务实例(Logger),每一个则定义一个通道(比如数据库、请求、路由...)。而每一个日志服务实例都可以组合各种各样的处理器,可以共享处理器也可以不共享。这个通道将会在日志中反映出来,从而允许你可以很容易地查看或者筛选记录。每一个处理还会有一个格式化器(Formatter)。如果你没有配置一个,则一个有意义的默认的格式化器将被创建。格式化器用来规范化并格式化输入的记录,以便处理器能输出一些有用的信息。不支持自定义的严重性级别。只支持使用RFC 5424中定义的八个级别(调试/Debug、信息/Info、提示/Notice、警告/Warning、错误/Error、严重/Critical、警报/Alert、紧急/Emergency)来作为基本的筛选目的。不过,如果为了排序或者其他需要灵活性的使用场景,你可以添加加工程序(Processor)从而可以在(处理器)处理前添加额外的信息(标签、用户IP...)。

日志级别

Monolog 支持一下RFC 5424中的日志级别:
  • 调试/DEBU...
阅读全文