diff --git a/config/packages/monolog.yaml b/config/packages/monolog.yaml index 3ad90ede8..99b89d16c 100644 --- a/config/packages/monolog.yaml +++ b/config/packages/monolog.yaml @@ -6,6 +6,10 @@ when@dev: monolog: handlers: main: + type: service + id: log_filter_handler + handler: rotating + rotating: type: rotating_file path: '%kernel.logs_dir%/%kernel.environment%.log' # Or use: "debug" instead of "info" for more verbose log (debug) messages @@ -45,9 +49,13 @@ when@test: main: type: fingers_crossed action_level: error - handler: nested + handler: filtered excluded_http_codes: [404, 405] channels: ['!event'] + filtered: + type: service + id: log_filter_handler + handler: nested nested: type: stream path: '%kernel.logs_dir%/%kernel.environment%.log' @@ -59,10 +67,14 @@ when@prod: main: type: fingers_crossed action_level: error - handler: nested + handler: filtered excluded_http_codes: [404, 405] channels: ["!deprecation"] buffer_size: 50 # How many messages should be saved? Prevent memory leaks + filtered: + type: service + id: log_filter_handler + handler: nested nested: type: group members: [nested_file, nested_stderr] diff --git a/config/services.yaml b/config/services.yaml index 9c32ed032..271120f32 100644 --- a/config/services.yaml +++ b/config/services.yaml @@ -265,6 +265,11 @@ services: event: kernel.controller_arguments, } + # Monolog handlers + log_filter_handler: + class: App\Service\MonologFilterHandler + public: false + # Feeds debril.rss_atom.provider: class: App\Feed\Provider diff --git a/src/Service/MonologFilterHandler.php b/src/Service/MonologFilterHandler.php new file mode 100644 index 000000000..1ff3a5fa3 --- /dev/null +++ b/src/Service/MonologFilterHandler.php @@ -0,0 +1,36 @@ +shouldFilter($record); + } + + private function shouldFilter(LogRecord $record): bool + { + foreach (self::TO_IGNORE as $str) { + if (str_contains($record->message, $str)) { + return true; + } + } + + return false; + } +}