logger.global.php 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <?php
  2. declare(strict_types=1);
  3. namespace Shlinkio\Shlink;
  4. use Monolog\Formatter;
  5. use Monolog\Handler;
  6. use Monolog\Logger;
  7. use Monolog\Processor;
  8. use MonologFactory\DiContainerLoggerFactory;
  9. use Psr\Log\LoggerInterface;
  10. use const PHP_EOL;
  11. $processors = [
  12. 'exception_with_new_line' => [
  13. 'name' => Common\Logger\Processor\ExceptionWithNewLineProcessor::class,
  14. ],
  15. 'psr3' => [
  16. 'name' => Processor\PsrLogMessageProcessor::class,
  17. ],
  18. ];
  19. $formatter = [
  20. 'name' => Formatter\LineFormatter::class,
  21. 'params' => [
  22. 'format' => '[%datetime%] %channel%.%level_name% - %message%' . PHP_EOL,
  23. 'allow_inline_line_breaks' => true,
  24. ],
  25. ];
  26. return [
  27. 'logger' => [
  28. 'Shlink' => [
  29. 'name' => 'Shlink',
  30. 'handlers' => [
  31. 'shlink_handler' => [
  32. 'name' => Handler\RotatingFileHandler::class,
  33. 'params' => [
  34. 'level' => Logger::INFO,
  35. 'filename' => 'data/log/shlink_log.log',
  36. 'max_files' => 30,
  37. ],
  38. 'formatter' => $formatter,
  39. ],
  40. ],
  41. 'processors' => $processors,
  42. ],
  43. 'Access' => [
  44. 'name' => 'Access',
  45. 'handlers' => [
  46. 'access_handler' => [
  47. 'name' => Handler\StreamHandler::class,
  48. 'params' => [
  49. 'level' => Logger::INFO,
  50. 'stream' => 'php://stdout',
  51. ],
  52. 'formatter' => $formatter,
  53. ],
  54. ],
  55. 'processors' => $processors,
  56. ],
  57. ],
  58. 'dependencies' => [
  59. 'factories' => [
  60. 'Logger_Shlink' => [DiContainerLoggerFactory::class, 'Shlink'],
  61. 'Logger_Access' => [DiContainerLoggerFactory::class, 'Access'],
  62. ],
  63. 'aliases' => [
  64. 'logger' => 'Logger_Shlink',
  65. Logger::class => 'Logger_Shlink',
  66. LoggerInterface::class => 'Logger_Shlink',
  67. ],
  68. ],
  69. 'mezzio-swoole' => [
  70. 'swoole-http-server' => [
  71. 'logger' => [
  72. 'logger-name' => 'Logger_Access',
  73. ],
  74. ],
  75. ],
  76. ];