Witam,

Mam za zadanie zmienić konwencję logerów w aplikacji. Obecnie logery są skonfiguroane jako dedykowane usługi. Chciałbym zdefiniować logery w konwencji Symfony i zapewnić wsteczną kompatybilność definiując DI kierujące stare nazwy usług loggerów do nowych w konwencji monolog.logger.channel. Mam z logerami w Symfony doczynienia pierwszy raz czy jest ktoś wstanie podać mi jakiś przykład jak tego dookonać? Z góry dziękuję i pozdrawiam poniżej zamieszczam obecną konfigurację:

  1. app/config/config_dev.yml:
  2.  
  3. monolog:
  4. handlers:
  5. main:
  6. type: stream
  7. path: "%kernel.logs_dir%/%kernel.environment%.log"
  8. level: debug
  9. channels: ['!my_channel']
  10. my_handler:
  11. type: stream
  12. path: "%kernel.logs_dir%/%kernel.environment%.my_handler.log"
  13. level: debug
  14. channels: ['my_channel']
  15. console:
  16. type: console
  17. bubble: false
  18.  
  19. app/config/config_prod.yml:
  20.  
  21. monolog:
  22. handlers:
  23. main:
  24. type: fingers_crossed
  25. action_level: error
  26. handler: nested
  27. channels: ['!my_channel']
  28. nested:
  29. type: stream
  30. path: "%kernel.logs_dir%/%kernel.environment%.log"
  31. level: debug
  32. console:
  33. type: console
  34. my_channel:
  35. type: fingers_crossed
  36. action_level: error
  37. handler: my_channel_stream
  38. my_channel_stream:
  39. type: stream
  40. path: "%kernel.logs_dir%/%kernel.environment%.my_channel.log"
  41. level: debug
  42. channels: ['my_channel']
  43.  
  44. src/bundle/Resources/config/logger.yml:
  45.  
  46. services:
  47. logger:
  48. class: Symfony\Bridge\Monolog\Logger
  49. arguments: [logger]
  50. calls:
  51. - [pushHandler, ['@monolog.handler.console']]
  52. - [pushHandler, ['@logger_handler']]
  53.  
  54. logger_handler:
  55. class: Monolog\Handler\StreamHandler
  56. arguments: ["%kernel.logs_dir%/%kernel.environment%.cof.log", 200]
  57.  
  58. src/bundle/Resources/config/config.yml:
  59.  
  60. monolog:
  61. channels: ['my_channel']