-
-
Notifications
You must be signed in to change notification settings - Fork 5.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* 3.0: Updating recommended email settings for monolog Update upload_file.rst fix dumper default representation Improve `Finder::path` code example about resulting matches preg_match throw an warning [#6599] Make description a little bit more clear [Process] tweak a sentence Fixed null description of query_builder option
- Loading branch information
Showing
7 changed files
with
91 additions
and
58 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -25,18 +25,20 @@ it is broken down. | |
# action_level: error | ||
# excluded_404s: | ||
# - ^/ | ||
handler: buffered | ||
buffered: | ||
type: buffer | ||
handler: deduplicated | ||
deduplicated: | ||
type: deduplication | ||
handler: swift | ||
swift: | ||
type: swift_mailer | ||
from_email: '[email protected]' | ||
to_email: '[email protected]' | ||
# or list of recipients | ||
# to_email: ['[email protected]', '[email protected]', ...] | ||
subject: An Error Occurred! | ||
subject: 'An Error Occurred! %%message%%' | ||
level: debug | ||
formatter: monolog.formatter.html | ||
content_type: text/html | ||
.. code-block:: xml | ||
|
@@ -49,8 +51,9 @@ it is broken down. | |
http://symfony.com/schema/dic/monolog http://symfony.com/schema/dic/monolog/monolog-1.0.xsd"> | ||
<monolog:config> | ||
<!-- | ||
To also log 400 level errors (but not 404's): | ||
<!-- | ||
500 errors are logged at the critical level, | ||
to also log 400 level errors (but not 404's): | ||
action-level="error" | ||
And add this child inside this monolog:handler | ||
<monolog:excluded-404>^/</monolog:excluded-404> | ||
|
@@ -59,23 +62,25 @@ it is broken down. | |
name="mail" | ||
type="fingers_crossed" | ||
action-level="critical" | ||
handler="buffered" | ||
handler="deduplicated" | ||
/> | ||
<monolog:handler | ||
name="buffered" | ||
type="buffer" | ||
name="deduplicated" | ||
type="deduplication" | ||
handler="swift" | ||
/> | ||
> | ||
<monolog:handler | ||
name="swift" | ||
type="swift_mailer" | ||
from-email="[email protected]" | ||
subject="An Error Occurred!" | ||
level="debug"> | ||
subject="An Error Occurred! %%message%%" | ||
level="debug" | ||
formatter="monolog.formatter.html" | ||
content-type="text/html"> | ||
<monolog:to-email>[email protected]</monolog:to-email> | ||
<!-- or multiple to-email elements --> | ||
<!-- or list of recipients --> | ||
<!-- | ||
<monolog:to-email>[email protected]</monolog:to-email> | ||
<monolog:to-email>[email protected]</monolog:to-email> | ||
|
@@ -92,26 +97,29 @@ it is broken down. | |
'handlers' => array( | ||
'mail' => array( | ||
'type' => 'fingers_crossed', | ||
// 500 errors are logged at the critical level | ||
'action_level' => 'critical', | ||
// to also log 400 level errors (but not 404's): | ||
// 'action_level' => 'error', | ||
// 'excluded_404s' => array( | ||
// '^/', | ||
// ), | ||
'handler' => 'buffered', | ||
'handler' => 'deduplicated', | ||
), | ||
'buffered' => array( | ||
'type' => 'buffer', | ||
'deduplicated' => array( | ||
'type' => 'deduplication', | ||
'handler' => 'swift', | ||
), | ||
'swift' => array( | ||
'type' => 'swift_mailer', | ||
'from_email' => '[email protected]', | ||
'to_email' => '[email protected]', | ||
'type' => 'swift_mailer', | ||
'from_email' => '[email protected]', | ||
'to_email' => '[email protected]', | ||
// or a list of recipients | ||
// 'to_email' => array('[email protected]', '[email protected]', ...), | ||
'subject' => 'An Error Occurred!', | ||
'level' => 'debug', | ||
'subject' => 'An Error Occurred! %%message%%', | ||
'level' => 'debug', | ||
'formatter' => 'monolog.formatter.html', | ||
'content_type' => 'text/html', | ||
), | ||
), | ||
)); | ||
|
@@ -121,20 +129,24 @@ it is only triggered when the action level, in this case ``critical`` is reached | |
The ``critical`` level is only triggered for 5xx HTTP code errors. If this level | ||
is reached once, the ``fingers_crossed`` handler will log all messages | ||
regardless of their level. The ``handler`` setting means that the output | ||
is then passed onto the ``buffered`` handler. | ||
is then passed onto the ``deduplicated`` handler. | ||
|
||
.. tip:: | ||
|
||
If you want both 400 level and 500 level errors to trigger an email, | ||
set the ``action_level`` to ``error`` instead of ``critical``. See the | ||
code above for an example. | ||
|
||
The ``buffered`` handler simply keeps all the messages for a request and | ||
then passes them onto the nested handler in one go. If you do not use this | ||
handler then each message will be emailed separately. This is then passed | ||
to the ``swift`` handler. This is the handler that actually deals with | ||
emailing you the error. The settings for this are straightforward, the | ||
to and from addresses and the subject. | ||
The ``deduplicated`` handler simply keeps all the messages for a request and | ||
then passes them onto the nested handler in one go, but only if the records are | ||
unique over a given period of time (60 seconds by default). If the records are | ||
duplicates they are simply discarded. Adding this handler reduces the amount of | ||
notifications to a manageable level, specially in critical failure scenarios. | ||
|
||
The messages are then passed to the ``swift`` handler. This is the handler that | ||
actually deals with emailing you the error. The settings for this are | ||
straightforward, the to and from addresses, the formatter, the content type | ||
and the subject. | ||
|
||
You can combine these handlers with other handlers so that the errors still | ||
get logged on the server as well as the emails being sent: | ||
|
@@ -152,20 +164,22 @@ get logged on the server as well as the emails being sent: | |
handler: grouped | ||
grouped: | ||
type: group | ||
members: [streamed, buffered] | ||
members: [streamed, deduplicated] | ||
streamed: | ||
type: stream | ||
path: '%kernel.logs_dir%/%kernel.environment%.log' | ||
level: debug | ||
buffered: | ||
type: buffer | ||
deduplicated: | ||
type: deduplication | ||
handler: swift | ||
swift: | ||
type: swift_mailer | ||
from_email: '[email protected]' | ||
to_email: '[email protected]' | ||
subject: An Error Occurred! | ||
subject: 'An Error Occurred! %%message%%' | ||
level: debug | ||
formatter: monolog.formatter.html | ||
content_type: text/html | ||
.. code-block:: xml | ||
|
@@ -188,25 +202,36 @@ get logged on the server as well as the emails being sent: | |
type="group" | ||
> | ||
<member type="stream"/> | ||
<member type="buffered"/> | ||
<member type="deduplicated"/> | ||
</monolog:handler> | ||
<monolog:handler | ||
name="stream" | ||
path="%kernel.logs_dir%/%kernel.environment%.log" | ||
level="debug" | ||
/> | ||
<monolog:handler | ||
name="buffered" | ||
type="buffer" | ||
name="deduplicated" | ||
type="deduplication" | ||
handler="swift" | ||
/> | ||
<monolog:handler | ||
name="swift" | ||
type="swift_mailer" | ||
from-email="[email protected]" | ||
to-email="[email protected]" | ||
subject="An Error Occurred!" | ||
subject="An Error Occurred! %%message%%" | ||
level="debug" | ||
/> | ||
formatter="monolog.formatter.html" | ||
content-type="text/html"> | ||
<monolog:to-email>[email protected]</monolog:to-email> | ||
<!-- or list of recipients --> | ||
<!-- | ||
<monolog:to-email>[email protected]</monolog:to-email> | ||
<monolog:to-email>[email protected]</monolog:to-email> | ||
... | ||
--> | ||
</monolog:handler> | ||
</monolog:config> | ||
</container> | ||
|
@@ -222,29 +247,33 @@ get logged on the server as well as the emails being sent: | |
), | ||
'grouped' => array( | ||
'type' => 'group', | ||
'members' => array('streamed', 'buffered'), | ||
'members' => array('streamed', 'deduplicated'), | ||
), | ||
'streamed' => array( | ||
'type' => 'stream', | ||
'path' => '%kernel.logs_dir%/%kernel.environment%.log', | ||
'level' => 'debug', | ||
), | ||
'buffered' => array( | ||
'type' => 'buffer', | ||
'handler' => 'swift', | ||
'deduplicated' => array( | ||
'type' => 'deduplication', | ||
'handler' => 'swift', | ||
), | ||
'swift' => array( | ||
'type' => 'swift_mailer', | ||
'from_email' => '[email protected]', | ||
'to_email' => '[email protected]', | ||
'subject' => 'An Error Occurred!', | ||
'level' => 'debug', | ||
'type' => 'swift_mailer', | ||
'from_email' => '[email protected]', | ||
'to_email' => '[email protected]', | ||
// or a list of recipients | ||
// 'to_email' => array('[email protected]', '[email protected]', ...), | ||
'subject' => 'An Error Occurred! %%message%%', | ||
'level' => 'debug', | ||
'formatter' => 'monolog.formatter.html', | ||
'content_type' => 'text/html', | ||
), | ||
), | ||
)); | ||
This uses the ``group`` handler to send the messages to the two | ||
group members, the ``buffered`` and the ``stream`` handlers. The messages will | ||
group members, the ``deduplicated`` and the ``stream`` handlers. The messages will | ||
now be both written to the log file and emailed. | ||
|
||
.. _Monolog: https://github.com/Seldaek/monolog |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters