Advertisement
Guest User

Untitled

a guest
Apr 14th, 2014
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.74 KB | None | 0 0
  1. monolog.processor.request_introspection:
  2. class: Workins\MainBundle\Monolog\RequestIntrospectionProcessor
  3. calls:
  4. - [setRequest, ['@?request=']] # note: use request_stack for symfony >= 2.4
  5. - [setSession, [@session]]
  6. - [setEnv, [%kernel.environment%]]
  7. # optionally pass the different key for other firewall
  8. # - [setSecurityKey, ['blahblah']]
  9. tags:
  10. - { name: monolog.processor }
  11.  
  12.  
  13. <?php
  14.  
  15. namespace Workins\MainBundle\Monolog;
  16.  
  17. use Monolog\Processor\IntrospectionProcessor;
  18. use Symfony\Component\HttpFoundation\Request;
  19. use Symfony\Component\HttpFoundation\Session\Session;
  20.  
  21. /**
  22. * Добавляет данные о запросе и сессии.
  23. */
  24. class RequestIntrospectionProcessor extends IntrospectionProcessor
  25. {
  26. /**
  27. * @var string
  28. */
  29. private $securityKey = '_security_main';
  30.  
  31. /**
  32. * @var Session
  33. */
  34. private $session;
  35.  
  36. /**
  37. * @var Request
  38. */
  39. private $request;
  40.  
  41. /**
  42. * @var string
  43. */
  44. private $env;
  45.  
  46. /**
  47. * {@inheritdoc}
  48. */
  49. public function __invoke(array $record)
  50. {
  51. if ($this->env !== 'prod') {
  52. return $record;
  53. }
  54.  
  55. $record = parent::__invoke($record);
  56.  
  57. $requestData = array();
  58.  
  59. if (!is_null($this->request)) {
  60. $requestData['request'] = array(
  61. 'uri' => $this->request->getRequestUri(),
  62. 'method' => $this->request->getMethod(),
  63. 'headers' => $this->request->headers->all(),
  64. );
  65. }
  66.  
  67. if (!is_null($this->session)) {
  68. $requestData['session'] = array(
  69. 'id' => $this->session->getId(),
  70. );
  71.  
  72. if ($this->session->has($this->securityKey)) {
  73. $token = unserialize($this->session->get($this->securityKey));
  74. $user = $token->getUser();
  75. if (!is_null($user)) {
  76. $requestData['session']['user'] = $user->getId();
  77. }
  78. }
  79. }
  80.  
  81. $record['extra']['request'] = $requestData;
  82.  
  83. return $record;
  84. }
  85.  
  86. /**
  87. * @param Session $session
  88. */
  89. public function setSession(Session $session = null)
  90. {
  91. $this->session = $session;
  92. }
  93.  
  94. /**
  95. * @param Request $request
  96. */
  97. public function setRequest(Request $request = null)
  98. {
  99. $this->request = $request;
  100. }
  101.  
  102. /**
  103. * @param string $securityKey
  104. */
  105. public function setSecurityKey($securityKey)
  106. {
  107. $this->securityKey = $securityKey;
  108. }
  109.  
  110. /**
  111. * @param string $env
  112. */
  113. public function setEnv($env)
  114. {
  115. $this->env = $env;
  116. }
  117. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement