【问题标题】:Change filename on custom monolog file更改自定义独白文件的文件名
【发布时间】:2018-02-22 09:10:39
【问题描述】:

我使用旋转独白处理程序

monolog:
        channels: ['import']
        handlers:
            import_client:
                level: debug
                type: rotating_file
                max_files: 10
                path: '%kernel.logs_dir%/import.log'
                channels: [import_client]

除了我不喜欢文件名之外,一切都很好。我得到import-2018-02-22.log
是否存在改变这种格式的方法?

我希望文件名类似于import-"date(YmdHis)".log

是否可以重写文件名格式?你有什么解决办法吗?

【问题讨论】:

    标签: php symfony symfony-2.8 monolog symfony-2.7


    【解决方案1】:

    RotatingFileHandler 将记录记录到文件并每天创建一个日志文件。它还将删除早于 $maxFiles 的文件。不过,您应该使用logrotate 进行高配置设置,这只是一种快速而肮脏的解决方案。

    正如您在原始 RotatingFileHandler 中看到的:您可以更改旋转日期格式

    public function setFilenameFormat($filenameFormat, $dateFormat)
    

    但我在symfony monolog reference 中看不到任何配置选项。 您可以使用

    调用服务
    services:
        app.custom_rotating_service:
            # ...
            calls:
                - method: setFilenameFormat
                  arguments:
                      - 'yourFilenameFormat'
                      - 'Ymd'
    

    在我看来,如果没有日期格式的附加值,您会陷入一些复杂的事情。

    TLDR

    • 使用独白无法按小时/分钟创建日志文件
    • 将处理程序的日期格式或轮换频率更改为月/年(对我而言)可行,但 symfony monolog 配置不支持。您可以创建一个服务并尝试在创建服务实例时自动调用该方法
    • 如果您有旋转日志的自定义需求,您应该使用logrotate

    【讨论】:

    • 可以从 config 更改此 dateFormat 吗?还是需要创建新服务?
    • 将处理程序的日期格式或轮换频率更改为月/年似乎(对我而言)可行但 symfony 独白配置不支持,您可以创建一个服务并尝试自动调用该方法
    • 服务应该使用我的自定义处理程序?
    • 我真的不知道,我现在没有时间尝试。我还看不到您将如何注册类型以在独白中使用它。在我看来,您正在陷入没有附加价值的复杂事物
    • 好的,我试过像你写的那样,但现在可以工作了......我会找到如何定义这个服务
    【解决方案2】:

    我找到了解决方案,需要在配置处理程序中添加一个新参数:

    date_format: 'YmdHms'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-31
      • 2019-06-30
      • 1970-01-01
      • 2015-04-29
      • 1970-01-01
      • 1970-01-01
      • 2023-04-09
      • 1970-01-01
      相关资源
      最近更新 更多