如何定义自定义日志格式化器
每个日志处理器都使用 Formatter
来格式化记录,然后再进行日志记录。所有 Monolog 处理器默认都使用 Monolog\Formatter\LineFormatter
的实例,但您可以替换它。您的格式化器必须实现 Monolog\Formatter\FormatterInterface
。
例如,要使用内置的 JsonFormatter
,请将其注册为服务,然后配置您的处理器以使用它
1 2 3 4 5 6 7
# config/packages/prod/monolog.yaml (and/or config/packages/dev/monolog.yaml)
monolog:
handlers:
file:
type: stream
level: debug
formatter: 'monolog.formatter.json'
Monolog 中提供了许多内置的格式化器。其中许多被声明为服务,可以在 formatter
选项中使用
monolog.formatter.chrome_php
: 根据 ChromePHP 数组格式格式化记录monolog.formatter.gelf_message
: 将格式序列化为 GELF 格式monolog.formatter.html
: 将记录格式化为 HTML 表格monolog.formatter.json
: 将记录序列化为 JSON 对象monolog.formatter.line
: 将记录格式化为单行字符串monolog.formatter.loggly
: 将记录信息格式化为 JSON,格式与 Loggly 兼容monolog.formatter.logstash
: 将记录序列化为 Logstash 事件格式monolog.formatter.normalizer
: 规范化记录以删除对象/资源,以便更容易转储到各种目标monolog.formatter.scalar
: 将记录格式化为标量值(+ null)的关联数组(对象和数组将进行 JSON 编码)monolog.formatter.wildfire
: 根据 Wildfire 的标头要求序列化记录
此作品,包括代码示例,根据 Creative Commons BY-SA 3.0 许可证获得许可。