如何配置Monolog把404错误从日志中排除出去

3.4 版本
维护中的版本

有时,你的日志会因并不需要的404 HTTP错误而臃肿不堪,例如,当攻击者扫描你的程序以获取一些广为人知的路径时(如/phpmyadmin)。当使用 finger_crossed handler时,你可以在MonologBundle的配置文件中基于正则表达式来排除记录这些404错误:

1
2
3
4
5
6
7
8
9
# app/config/config.yml
monolog:
    handlers:
        main:
            # ...
            type: fingers_crossed
            handler: ...
            excluded_404s:
                - ^/phpmyadmin
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!-- app/config/config.xml -->
<container xmlns="http://symfony.com/schema/dic/services"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:monolog="http://symfony.com/schema/dic/monolog"
    xsi:schemaLocation="http://symfony.com/schema/dic/services
        http://symfony.com/schema/dic/services/services-1.0.xsd
        http://symfony.com/schema/dic/monolog
        http://symfony.com/schema/dic/monolog/monolog-1.0.xsd"
>
    <monolog:config>
        <monolog:handler type="fingers_crossed" name="main" handler="...">
            <!-- ... -->
            <monolog:excluded-404>^/phpmyadmin</monolog:excluded-404>
        </monolog:handler>
    </monolog:config>
</container>
1
2
3
4
5
6
7
8
9
10
11
12
13
// app/config/config.php
$container->loadFromExtension('monolog', array(
    'handlers' => array(
        'main' => array(
            // ...
            'type'          => 'fingers_crossed',
            'handler'       => ...,
            'excluded_404s' => array(
                '^/phpmyadmin',
            ),
        ),
    ),
));

本文,包括例程代码在内,采用的是 Creative Commons BY-SA 3.0 创作共用授权。

登录symfonychina 发表评论或留下问题(我们会尽量回复)