跳到内容

如何定义自定义日志格式化器

编辑此页

每个日志处理器都使用 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 许可证获得许可。
目录
    版本