Symfony 独白系统日志格式化程序

Posted

技术标签:

【中文标题】Symfony 独白系统日志格式化程序【英文标题】:Symfony monolog syslog formatter 【发布时间】:2018-09-26 08:56:48 【问题描述】:

是否可以为 syslog 格式化日志?配置系统日志的config.yml:

monolog:
    channels: ['auth']
    handlers:    
    auth:
        type: syslog
        level: debug
        facility: local0
        channels: [auth]

出现警告时打印的结果行:

Sep 20 15:43:31 api2 [10227]: auth.WARNING: invalid password "method":"ApiBundle\\Api.....

我想看到的那条线:

Sep 20 15:43:31 api2 auth.WARNING[10227]: invalid password "method":"ApiBundle\\Api.....

我尝试使用格式化程序,但没有成功:

# config.yml
monolog:
    ...
    handlers:
    auth:
        ...
        formatter: monolog.formatter.auth_exception

# services.yml
monolog.formatter.auth_exception:
    class: Monolog\Formatter\LineFormatter
    arguments:
        - "[%%datetime%%] %%channel%%.%%level_name%%: %%message%% %%context%% %%extra%%\n"

【问题讨论】:

你的格式化程序在哪里?你的格式化程序是实现 Monolog\Formatter\FormatterInterface Monolog\Formatter\LineFormatter 是 Monolog 的内置 Formatter @paddel10 这个问题你解决了吗? @nssmart 请在下面查看我的回答。希望这会有所帮助 【参考方案1】:

最后我使用了以下配置:

# config.yml
monolog:
    channels: ['weather', 'auth']
    handlers:
        main:
            type:         fingers_crossed
            action_level: error
            handler:      syslog_handler
        syslog_handler:
            type: syslog
            level: debug
        console:
            type:  console
        app:
            type: syslog
            level: debug
            channels: ['weather']
        auth:
            type: syslog
            level: warning
            facility: auth
            channels: [auth]

【讨论】:

以上是关于Symfony 独白系统日志格式化程序的主要内容,如果未能解决你的问题,请参考以下文章

Symfony 2 中默认独白的自定义独白处理程序

用于查看“漂亮”独白文件的软件包

如何不在独白日志行中显示最后一个括号?

第十三章 日志管理及安全

Linux 日志

Linux的日志文件分析