在 symfony 生产中将弃用记录到自己的文件中
Log deprecations to own file in symfony production
我有多个以 Symfony 为基础的生产车间。
现在我想写一个记录所有弃用的日志文件。
我希望它们出现在 "deprecated.log" 文件中。
这些弃用稍后会读入 kibana。
Monolog-Readme 说
WARNING (300): Exceptional occurrences that are not errors. Examples: Use of deprecated APIs, poor use of an API, undesirable things that are not necessarily wrong.
(https://github.com/Seldaek/monolog/blob/master/doc/01-usage.md)
所以我尝试了这个配置
monolog:
use_microseconds: false
handlers:
main:
type: group
members: [errors, deprecations]
errors:
type: error_log
level: ERROR
deprecations:
type: stream
level: WARNING
path: '%kernel.logs_dir%/deprecated.log'
channels: [php]
但是deprecated.log
没有生成。
我的错误是什么?错误日志似乎有效,但不是我的弃用。
这是因为弃用的严重级别为 INFO,但您设置了最低级别 WARNING,该级别高于 INFO,因此弃用将被忽略。
以下设置应该适合您:
deprecations:
type: stream
level: INFO
path: '%kernel.logs_dir%/deprecated.log'
channels: [php]
到处看了看,这个解决方案很好。但更好的是,自 5.1 以来,有弃用通道
从 Symfony 5.1 开始,弃用会在专用的“弃用”频道中记录下来
monolog:
channels: [deprecation]
handlers:
deprecation:
type: stream
channels: [deprecation]
path: php://stderr //or file path like '%kernel.logs_dir%/deprecated.log'
我有多个以 Symfony 为基础的生产车间。 现在我想写一个记录所有弃用的日志文件。
我希望它们出现在 "deprecated.log" 文件中。 这些弃用稍后会读入 kibana。
Monolog-Readme 说
WARNING (300): Exceptional occurrences that are not errors. Examples: Use of deprecated APIs, poor use of an API, undesirable things that are not necessarily wrong.
(https://github.com/Seldaek/monolog/blob/master/doc/01-usage.md)
所以我尝试了这个配置
monolog:
use_microseconds: false
handlers:
main:
type: group
members: [errors, deprecations]
errors:
type: error_log
level: ERROR
deprecations:
type: stream
level: WARNING
path: '%kernel.logs_dir%/deprecated.log'
channels: [php]
但是deprecated.log
没有生成。
我的错误是什么?错误日志似乎有效,但不是我的弃用。
这是因为弃用的严重级别为 INFO,但您设置了最低级别 WARNING,该级别高于 INFO,因此弃用将被忽略。 以下设置应该适合您:
deprecations:
type: stream
level: INFO
path: '%kernel.logs_dir%/deprecated.log'
channels: [php]
到处看了看,这个解决方案很好。但更好的是,自 5.1 以来,有弃用通道
从 Symfony 5.1 开始,弃用会在专用的“弃用”频道中记录下来
monolog:
channels: [deprecation]
handlers:
deprecation:
type: stream
channels: [deprecation]
path: php://stderr //or file path like '%kernel.logs_dir%/deprecated.log'