Skip to content

Commit f9f3c3f

Browse files
committed
Making the channel handler more useful by showing it on the prod environment
1 parent 47021ba commit f9f3c3f

File tree

1 file changed

+40
-26
lines changed

1 file changed

+40
-26
lines changed

cookbook/logging/channels_handlers.rst

+40-26
Original file line numberDiff line numberDiff line change
@@ -4,37 +4,47 @@
44
How to Log Messages to different Files
55
======================================
66

7-
The Symfony Standard Edition contains a bunch of channels for logging: ``doctrine``,
8-
``event``, ``security`` and ``request``. Each channel corresponds to a logger
9-
service (``monolog.logger.XXX``) in the container and is injected to the
10-
concerned service. The purpose of channels is to be able to organize different
11-
types of log messages.
7+
The Symfony Framework organizes log messages into channels. By default, there
8+
are several channels, including ``doctrine``, ``event``, ``security``, ``request``
9+
and more. The channel is printed in the log message and can also be used
10+
to direct different channels to different places/files.
1211

1312
By default, Symfony logs every message into a single file (regardless of
1413
the channel).
1514

15+
.. note::
16+
17+
Each channel corresponds to a logger service (``monolog.logger.XXX``)
18+
in the container (use the ``container:debug`` command to see a full list)
19+
and those are injected into different services.
20+
21+
.. _logging-channel-handler:
22+
1623
Switching a Channel to a different Handler
1724
------------------------------------------
1825

19-
Now, suppose you want to log the ``doctrine`` channel to a different file.
20-
21-
To do so, just create a new handler and configure it like this:
26+
Now, suppose you want to log the ``security`` channel to a different file
27+
in the ``prod`` environment. To do this, just create a new handler and configure
28+
it to log only messages from the ``security`` channel:
2229

2330
.. configuration-block::
2431

2532
.. code-block:: yaml
2633
27-
# app/config/config.yml
34+
# app/config/config_prod.yml
2835
monolog:
2936
handlers:
30-
main:
37+
security:
38+
# log all messages (since debug is the lowest level)
39+
level: debug
3140
type: stream
32-
path: /var/log/symfony.log
33-
channels: ["!doctrine"]
34-
doctrine:
35-
type: stream
36-
path: /var/log/doctrine.log
37-
channels: [doctrine]
41+
path: "%kernel.logs_dir%/security.log"
42+
channels: [security]
43+
44+
# an example of *not* logging security channel messages
45+
main:
46+
# ...
47+
# channels: ["!security"]
3848
3949
.. code-block:: xml
4050
@@ -48,16 +58,18 @@ To do so, just create a new handler and configure it like this:
4858
http://symfony.com/schema/dic/monolog/monolog-1.0.xsd"
4959
>
5060
<monolog:config>
51-
<monolog:handler name="main" type="stream" path="/var/log/symfony.log">
61+
<monolog:handler name="security" type="stream" path="%kernel.logs_dir%/security.log">
5262
<monolog:channels>
53-
<monolog:channel>!doctrine</monolog:channel>
63+
<monolog:channel>security</monolog:channel>
5464
</monolog:channels>
5565
</monolog:handler>
5666
57-
<monolog:handler name="doctrine" type="stream" path="/var/log/doctrine.log">
67+
<monolog:handler name="main" type="stream" path="%kernel.logs_dir%/security.log">
68+
<!--
5869
<monolog:channels>
59-
<monolog:channel>doctrine</monolog:channel>
70+
<monolog:channel>!security</monolog:channel>
6071
</monolog:channels>
72+
-->
6173
</monolog:handler>
6274
</monolog:config>
6375
</container>
@@ -67,19 +79,21 @@ To do so, just create a new handler and configure it like this:
6779
// app/config/config.php
6880
$container->loadFromExtension('monolog', array(
6981
'handlers' => array(
70-
'main' => array(
82+
'security' => array(
7183
'type' => 'stream',
72-
'path' => '/var/log/symfony.log',
84+
'path' => '%kernel.logs_dir%/security.log',
7385
'channels' => array(
74-
'!doctrine',
86+
'security',
7587
),
7688
),
77-
'doctrine' => array(
89+
'main' => array(
7890
'type' => 'stream',
79-
'path' => '/var/log/doctrine.log',
91+
'path' => '%kernel.logs_dir%/security.log',
92+
/*
8093
'channels' => array(
81-
'doctrine',
94+
'!security',
8295
),
96+
*/
8397
),
8498
),
8599
));

0 commit comments

Comments
 (0)