You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 18:50:26