如何配置 Monolog 从日志中排除 404 错误
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何配置 Monolog 从日志中排除 404 错误相关的知识,希望对你有一定的参考价值。
参考技术A 有时候你的日志充满了不想看到的 404 HTTP 错误,举例来说,当攻击者扫描你的应用的一些知名的应用程序路径时(例如 /phpmyadmin)。当使用 fingers_crossed handler 时,你可以基于一个在 MonologBundle 配置中正常的解释来拒绝记录这些日志:YAML:
# app/config/config.yml
monolog:
handlers:
main:
# ...
type: fingers_crossed
handler: ...
excluded_404s:
- ^/phpmyadmin
XML:
<!-- 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>
PHP:
// app/config/config.php
$container->loadFromExtension('monolog', array(
'handlers' => array(
'main' => array(
// ...
'type' => 'fingers_crossed',
'handler' => ...,
'excluded_404s' => array(
'^/phpmyadmin',
),
),
),
));
在 Symfony2 中使用 Monolog 进行日志旋转
【中文标题】在 Symfony2 中使用 Monolog 进行日志旋转【英文标题】:Log rotating with Monolog in Symfony2 【发布时间】:2013-12-06 06:01:51 【问题描述】:我想知道是否有可能在 Symfony2 中配置 Monolog 以每天创建一个新的日志文件,例如:2013-11-21-prod.log。
【问题讨论】:
【参考方案1】:有一个叫rotating_file
的记录器。
这是一个示例配置:
monolog:
handlers:
main:
type: rotating_file
path: %kernel.logs_dir%/%kernel.environment%.log
level: debug
【讨论】:
@Seldaek 也许您可以发布一个答案来说明它?作为 Monolog 的创建者,您比我更了解如何实现这一目标! ;-) 作为 Monolog 的创建者,我知道我不想重写一个一直存在并且运行良好的工具,但我不是 logrotate pro :) 无论如何@loicfavory 发布了一个示例 logrotate 配置在下面,所以我会留在那里。我只是想指出,并非所有任务都最好用 php 完成。 这正是我想要的。非常感谢。 如果它也有压缩旧日志的选项会更好。 :)【参考方案2】:在linux上,可以使用logrotate(不知道windows或者macos上是否存在其他解决方案)
在 /etc/logrotate.d/ 中创建一个文件(例如 sf2_myapp)并添加此内容:
/path/to/your/symfony_app/app/logs/prod.log
daily
missingok
rotate 14
compress
您应该在 Google 上查找 logrotate 以了解更多信息
【讨论】:
如果您只是旋转一个文件并且没有使用任何脚本(如 postrotate),则不需要共享脚本。 如果您想在制作此配置文件后手动强制旋转,请运行logrotate --force /etc/logrotate.d/sf2_myapp
以上是关于如何配置 Monolog 从日志中排除 404 错误的主要内容,如果未能解决你的问题,请参考以下文章
配置 symfony monolog 保留 apache 日志