add information about logging

This commit is contained in:
Julien Fastré 2016-06-01 23:20:22 +02:00
parent 20845bd737
commit 05a404d5b4
4 changed files with 63 additions and 2 deletions

View File

@ -21,6 +21,7 @@ As Chill rely on the `symfony <http://symfony.com>`_ framework, reading the fram
Access control model <access_control_model.rst>
Messages to users <messages-to-users.rst>
Localisation <localisation.rst>
Logging <logging.rst>
Database migrations <migrations.rst>
Searching <searching.rst>
Timelines <timelines.rst>

View File

@ -0,0 +1,50 @@
.. Copyright (C) 2016 Champs Libres Cooperative SCRLFS
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled "GNU
Free Documentation License".
Logging
*******
.. seealso::
Symfony documentation: `How to user Monolog to write logs <http://symfony.com/doc/current/cookbook/logging/monolog.html>`_
The symfony cookbook page about logging.
A channel for custom logging has been created to store sensitive data.
The channel is named ``chill``.
The installer of chill should be aware that this channel may contains sensitive data and encrypted during backup.
Logging to channel `chill`
============================
You should use the service named ``chill.main.logger``, as this :
.. code-block:: php
$logger = $this->get('chill.main.logger');
You should store data into context, not in the log himself, which should remains the same for the action.
Example of usage :
.. code-block:: php
$logger->info("An action has been performed about a person", array(
'person_lastname' => $person->getLastName(),
'person_firstname' => $person->getFirstName(),
'person_id' => $person->getId(),
'by_user' => $user->getUsername()
));
For further processing, it is a good idea to separate all fields (like firstname, lastname, ...) into different context keys.
By convention, you should store the username of the user performing the action under the ``by_user`` key.

View File

@ -28,7 +28,7 @@ Usage in production
.. toctree::
:maxdepth: 2
How to install the software <installation.rst>
Installation in production <install_production_webserver.rst>
Update Chill and maintenance
==============================

View File

@ -14,4 +14,14 @@ Install production webserver
.. todo::
the section "Install production webserver" must be written. Help appreciated :-)
.. warning::
Some sensitive data (like the person data, ...) might be logged in a special channel, called ``chill``.
This channel will log events like items removed by a user, what where the details of this item, who removed it, ...
You should take care of encrypting or discarding those data if required.
For an how-to of how to encrypt those data, you may consult `the appropriate section of the symfony documentation <http://symfony.com/doc/current/cookbook/logging/monolog.html#handlers-and-channels-writing-logs-to-different-locations>`_