Logger.php 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Framework\Session\SaveHandler\Redis;
  7. use Cm\RedisSession\Handler\ConfigInterface;
  8. use Psr\Log\LoggerInterface;
  9. use Magento\Framework\App\Request\Http as Request;
  10. class Logger implements \Cm\RedisSession\Handler\LoggerInterface
  11. {
  12. /**
  13. * @var LoggerInterface
  14. */
  15. private $logger;
  16. /**
  17. * @var int
  18. */
  19. private $logLevel;
  20. /**
  21. * @var Request
  22. */
  23. private $request;
  24. /**
  25. * Logger constructor
  26. *
  27. * @param ConfigInterface $config
  28. * @param LoggerInterface $logger
  29. * @param Request $request
  30. */
  31. public function __construct(ConfigInterface $config, LoggerInterface $logger, Request $request)
  32. {
  33. $this->logger = $logger;
  34. $this->request = $request;
  35. $this->logLevel = $config->getLogLevel() ?: self::ALERT;
  36. }
  37. /**
  38. * {@inheritdoc}
  39. */
  40. public function setLogLevel($level)
  41. {
  42. $this->logLevel = $level;
  43. }
  44. /**
  45. * {@inheritdoc}
  46. */
  47. public function log($message, $level)
  48. {
  49. $message .= ' ' . $this->request->getRequestUri();
  50. if ($this->logLevel >= $level) {
  51. switch ($level) {
  52. case self::EMERGENCY:
  53. $this->logger->emergency($message);
  54. break;
  55. case self::ALERT:
  56. $this->logger->alert($message);
  57. break;
  58. case self::CRITICAL:
  59. $this->logger->critical($message);
  60. break;
  61. case self::ERROR:
  62. $this->logger->error($message);
  63. break;
  64. case self::WARNING:
  65. $this->logger->warning($message);
  66. break;
  67. case self::NOTICE:
  68. $this->logger->notice($message);
  69. break;
  70. case self::INFO:
  71. $this->logger->info($message);
  72. break;
  73. default:
  74. $this->logger->debug($message);
  75. }
  76. }
  77. }
  78. /**
  79. * {@inheritdoc}
  80. */
  81. public function logException(\Exception $e)
  82. {
  83. $this->logger->critical($e->getMessage());
  84. }
  85. }