Symfony 6中如何配置Monolog修改日志时间戳格式
修改Symfony 6中Monolog日志的时间戳格式
完全可以通过Symfony配置修改Monolog的日志时间戳格式,无需修改代码,具体操作如下:
方法一:修改默认LineFormatter参数
在config/packages/monolog.yaml文件中,找到你要配置的日志处理器(比如默认的main处理器),通过formatter_with参数传递时间格式:
monolog: handlers: main: type: stream path: "%kernel.logs_dir%/%kernel.environment%.log" level: debug formatter: monolog.formatter.line formatter_with: date_format: "Y-m-d H:i:s"
formatter_with是Symfony 6引入的配置项,用于向Monolog的格式化器传递构造参数,这里指定date_format为你需要的格式,就能覆盖默认的ISO时间戳输出。
方法二:自定义格式化器服务
如果需要同时调整整体日志格式(比如修改日志模板),可以自定义一个LineFormatter服务:
首先在config/services.yaml中定义服务:
services: monolog.formatter.custom_line: class: Monolog\Formatter\LineFormatter arguments: # 日志模板,可沿用默认的SIMPLE_FORMAT或自定义 - "[%datetime%] %channel%.%level_name%: %message% %context% %extra%\n" # 指定时间戳格式 - "Y-m-d H:i:s" # 可选参数:是否移除日志末尾的换行(默认false) - false # 可选参数:是否格式化context和extra数据(默认true) - true
然后在monolog.yaml中使用这个自定义格式化器:
monolog: handlers: main: type: stream path: "%kernel.logs_dir%/%kernel.environment%.log" level: debug formatter: monolog.formatter.custom_line
完成配置后,日志输出的时间戳就会变成你期望的格式:
[2022-10-18 09:11:04] app.DEBUG: a message [] []
内容的提问来源于stack exchange,提问作者Gary
相关产品推荐
相关产品推荐

