@@ -18,31 +18,31 @@ using a processor.
18
18
19
19
.. code-block :: php
20
20
21
- namespace AppBundle;
21
+ namespace AppBundle\Logger ;
22
22
23
- use Symfony\Component\HttpFoundation\Session\Session ;
23
+ use Symfony\Component\HttpFoundation\Session\SessionInterface ;
24
24
25
25
class SessionRequestProcessor
26
26
{
27
27
private $session;
28
- private $token ;
28
+ private $sessionId ;
29
29
30
- public function __construct(Session $session)
30
+ public function __construct(SessionInterface $session)
31
31
{
32
32
$this->session = $session;
33
33
}
34
34
35
35
public function processRecord(array $record)
36
36
{
37
- if (null === $this->token) {
38
- try {
39
- $this->token = substr($this->session->getId(), 0, 8);
40
- } catch (\RuntimeException $e) {
41
- $this->token = '????????';
42
- }
43
- $this->token .= '-' . substr(uniqid(), -8);
37
+ if (!$this->session->isStarted()) {
38
+ return $record;
44
39
}
45
- $record['extra']['token'] = $this->token;
40
+
41
+ if (!$this->sessionId) {
42
+ $this->sessionId = substr($this->session->getId(), 0, 8) ?: '????????';
43
+ }
44
+
45
+ $record['extra']['token'] = $this->sessionId.'-'.substr(uniqid('', true), -8);
46
46
47
47
return $record;
48
48
}
@@ -59,8 +59,8 @@ using a processor.
59
59
arguments :
60
60
- " [%%datetime%%] [%%extra.token%%] %%channel%%.%%level_name%%: %%message%% %%context%% %%extra%%\n "
61
61
62
- monolog.processor.session_request :
63
- class : AppBundle\SessionRequestProcessor
62
+ app.logger.session_request_processor :
63
+ class : AppBundle\Logger\ SessionRequestProcessor
64
64
arguments : ['@session']
65
65
tags :
66
66
- { name: monolog.processor, method: processRecord }
@@ -71,7 +71,7 @@ using a processor.
71
71
type : stream
72
72
path : ' %kernel.logs_dir%/%kernel.environment%.log'
73
73
level : debug
74
- formatter : monolog.formatter.session_request
74
+ formatter : app.logger.session_request_processor
75
75
76
76
.. code-block :: xml
77
77
@@ -92,8 +92,8 @@ using a processor.
92
92
<argument >[%%datetime%%] [%%extra.token%%] %%channel%%.%%level_name%%: %%message%% %%context%% %%extra%%
 </argument >
93
93
</service >
94
94
95
- <service id =" monolog.processor.session_request "
96
- class =" AppBundle\SessionRequestProcessor" >
95
+ <service id =" app.logger.session_request_processor "
96
+ class =" AppBundle\Logger\ SessionRequestProcessor" >
97
97
98
98
<argument type =" service" id =" session" />
99
99
<tag name =" monolog.processor" method =" processRecord" />
@@ -106,23 +106,23 @@ using a processor.
106
106
type =" stream"
107
107
path =" %kernel.logs_dir%/%kernel.environment%.log"
108
108
level =" debug"
109
- formatter =" monolog.formatter.session_request "
109
+ formatter =" app.logger.session_request_processor "
110
110
/>
111
111
</monolog : config >
112
112
</container >
113
113
114
114
.. code-block :: php
115
115
116
116
// app/config/config.php
117
- use AppBundle\SessionRequestProcessor;
117
+ use AppBundle\Logger\ SessionRequestProcessor;
118
118
use Monolog\Formatter\LineFormatter;
119
119
120
120
$container
121
121
->register('monolog.formatter.session_request', LineFormatter::class)
122
122
->addArgument('[%%datetime%%] [%%extra.token%%] %%channel%%.%%level_name%%: %%message%% %%context%% %%extra%%\n');
123
123
124
124
$container
125
- ->register('monolog.processor.session_request ', SessionRequestProcessor::class)
125
+ ->register('app.logger.session_request_processor ', SessionRequestProcessor::class)
126
126
->addArgument(new Reference('session'))
127
127
->addTag('monolog.processor', array('method' => 'processRecord'));
128
128
@@ -132,7 +132,7 @@ using a processor.
132
132
'type' => 'stream',
133
133
'path' => '%kernel.logs_dir%/%kernel.environment%.log',
134
134
'level' => 'debug',
135
- 'formatter' => 'monolog.formatter.session_request ',
135
+ 'formatter' => 'app.logger.session_request_processor ',
136
136
),
137
137
),
138
138
));
@@ -155,8 +155,8 @@ the ``monolog.processor`` tag:
155
155
156
156
# app/config/config.yml
157
157
services :
158
- monolog.processor.session_request :
159
- class : AppBundle\SessionRequestProcessor
158
+ app.logger.session_request_processor :
159
+ class : AppBundle\Logger\ SessionRequestProcessor
160
160
arguments : ['@session']
161
161
tags :
162
162
- { name: monolog.processor, method: processRecord, handler: main }
@@ -174,8 +174,8 @@ the ``monolog.processor`` tag:
174
174
http://symfony.com/schema/dic/monolog/monolog-1.0.xsd" >
175
175
176
176
<services >
177
- <service id =" monolog.processor.session_request "
178
- class =" AppBundle\SessionRequestProcessor" >
177
+ <service id =" app.logger.session_request_processor
178
+ class=" AppBundle\Logger\ SessionRequestProcessor" >
179
179
180
180
<argument type=" service" id=" session" />
181
181
<tag name=" monolog.processor" method=" processRecord" handler=" main" />
@@ -190,7 +190,7 @@ the ``monolog.processor`` tag:
190
190
// ...
191
191
$container
192
192
->register(
193
- 'monolog.processor.session_request ',
193
+ 'app.logger.session_request_processor ',
194
194
SessionRequestProcessor::class
195
195
)
196
196
->addArgument(new Reference('session'))
@@ -208,8 +208,8 @@ the ``monolog.processor`` tag:
208
208
209
209
# app/config/config.yml
210
210
services:
211
- monolog.processor.session_request :
212
- class : AppBundle\SessionRequestProcessor
211
+ app.logger.session_request_processor :
212
+ class: AppBundle\Logger\ SessionRequestProcessor
213
213
arguments: ['@session']
214
214
tags:
215
215
- { name: monolog.processor, method: processRecord, channel: main }
@@ -227,8 +227,8 @@ the ``monolog.processor`` tag:
227
227
http://symfony.com/schema/dic/monolog/monolog-1.0.xsd" >
228
228
229
229
<services>
230
- <service id =" monolog.processor.session_request "
231
- class =" AppBundle\SessionRequestProcessor" >
230
+ <service id=" app.logger.session_request_processor "
231
+ class=" AppBundle\Logger\ SessionRequestProcessor" >
232
232
233
233
<argument type=" service" id=" session" />
234
234
<tag name=" monolog.processor" method=" processRecord" channel=" main" />
@@ -242,6 +242,6 @@ the ``monolog.processor`` tag:
242
242
243
243
// ...
244
244
$container
245
- ->register('monolog.processor.session_request ', SessionRequestProcessor::class)
245
+ ->register('app.logger.session_request_processor ', SessionRequestProcessor::class)
246
246
->addArgument(new Reference('session'))
247
247
->addTag('monolog.processor', array('method' => 'processRecord', 'channel' => 'main'));
0 commit comments