Я хочу добавить пользовательский обработчик к монологу по умолчанию в Symfony 2.
В моем файле config.yaml
меня есть:
monolog: handlers: main: type: stream path: %kernel.logs_dir%/%kernel.environment%.log level: debug myHandler: type: Acme\MyBundle\Monolog\MyCustomHandler level: error
Мой класс выглядит следующим образом:
// Acme\MyBundle\Monolog\MyCustomHandler use Monolog\Logger; use Monolog\Handler\SocketHandler; use Monolog\Formatter\LineFormatter; class MyCustomHandler extends AbstractProcessingHandler { ... }
Но даже до того, как я заполнил свой класс, я получаю сообщение об ошибке:
недействительный тип обработчика «acme \ mybundle \ monolog \ mycustomhandler» для обработчика «myHandler»
- Как сделать запрос POST Ajax с помощью Symfony и JQuery
- Symfony3: Fatal error: Class 'AppKernel' не найден. \ Bin \ console
- PHP аутентификация Symfony2 без базы данных (SOAP)
- Symfony2 / Datatable Bundle - ошибка: установите идентификатор datatable в вашем действии с помощью «setDatatableId», используя идентификатор из вашего представления
- Картирование - встроенный документ Mongodb в Symfony2
Как добавить пользовательский обработчик к монологу по умолчанию, не создавая новую монологическую службу?
Попробуй это:
monolog: handlers: main: type: stream path: %kernel.logs_dir%/%kernel.environment%.log level: debug custom: type: service id: my_custom_handler services: my_custom_handler: class: Acme\MyBundle\Monolog\MyCustomHandler
Если вы хотите использовать его как обработчик по умолчанию, тогда вы должны изменить бит монолога, который я написал выше.
monolog: handlers: main: type: stream path: %kernel.logs_dir%/%kernel.environment%.log level: debug handler: custom custom: type: service id: my_custom_handler
Надеюсь, это поможет вам.
Я только узнал, что Monolog
поставляется с набором различных обработчиков, поэтому вы можете использовать один из них вместо того, чтобы писать свои собственные. Я использую LogEntriesHandler
для входа в logentries.com, но есть еще несколько, как описано здесь: https://github.com/Seldaek/monolog#log-specific-servers-and-networked-logging
Моя конфигурация Symfony2 выглядит так:
monolog: main: type: fingers_crossed level: debug handler: nested custom: type: service id: monolog.handler.logentries level: error services: monolog.handler.logentries: class: Monolog\Handler\LogEntriesHandler arguments: token: %logentries_token%