LoggerServiceProvider.php 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <?php
  2. /**
  3. * @package Grav\Common\Service
  4. *
  5. * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved.
  6. * @license MIT License; see LICENSE file for details.
  7. */
  8. namespace Grav\Common\Service;
  9. use Monolog\Handler\StreamHandler;
  10. use Monolog\Logger;
  11. use Pimple\Container;
  12. use Pimple\ServiceProviderInterface;
  13. use RocketTheme\Toolbox\ResourceLocator\UniformResourceLocator;
  14. /**
  15. * Class LoggerServiceProvider
  16. * @package Grav\Common\Service
  17. */
  18. class LoggerServiceProvider implements ServiceProviderInterface
  19. {
  20. /**
  21. * @param Container $container
  22. * @return void
  23. */
  24. public function register(Container $container)
  25. {
  26. $container['log'] = function ($c) {
  27. $log = new Logger('grav');
  28. /** @var UniformResourceLocator $locator */
  29. $locator = $c['locator'];
  30. $log_file = $locator->findResource('log://grav.log', true, true);
  31. $log->pushHandler(new StreamHandler($log_file, Logger::DEBUG));
  32. return $log;
  33. };
  34. }
  35. }