Дата обновления перевода 2021-09-28
Как сконфигурировать Monolog для исключения конкретных HTTP-кодов из лога¶
Иногда ваши логи становятся переполненными нежелательными HTTP-ошибками,
к примеру, 403 и 404. При использовании обработчика fingers_crossed
,
вы можете исключить ведение логов этих HTTP-кодов, основываясь на конфигурации
MonologBundle:
- YAML
1 2 3 4 5 6 7 8
# config/packages/prod/monolog.yaml monolog: handlers: main: # ... type: fingers_crossed handler: ... excluded_http_codes: [403, 404, { 400: ['^/foo', '^/bar'] }]
- XML
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
<!-- config/packages/prod/monolog.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 https://symfony.com/schema/dic/services/services-1.0.xsd http://symfony.com/schema/dic/monolog https://symfony.com/schema/dic/monolog/monolog-1.0.xsd"> <monolog:config> <monolog:handler type="fingers_crossed" name="main" handler="..."> <!-- ... --> <monolog:excluded-http-code code="403"> <monolog:url>^/foo</monolog:url> <monolog:url>^/bar</monolog:url> </monolog:excluded-http-code> <monolog:excluded-http-code code="404"/> </monolog:handler> </monolog:config> </container>
- PHP
1 2 3 4 5 6 7 8 9 10 11 12 13
// config/packages/prod/monolog.php use Symfony\Config\MonologConfig; return static function (MonologConfig $monolog) { $mainHandler = $monolog->handler('main') // ... ->type('fingers_crossed') ->handler(...) ; $mainHandler->excludedHttpCode()->code(403); $mainHandler->excludedHttpCode()->code(404); };
Caution
Комбинируя excluded_http_codes
с passthru_level
ниже, чем than
error
(т.е. debug
, info
, notice
или warning
) не исключит
сообщения логов для этих HTTP-кодов на самом деле, потому что их логи ведутся
на уровне error
и выше, а passthru_level
главенствует над HTTP-кодами,
перечисленными в excluded_http_codes
.
Эта документация является переводом официальной документации Symfony и предоставляется по свободной лицензии CC BY-SA 3.0.