Development #56711
ne pas logguer les PermissionDenied
0%
Description
Dans la sortie de journalctl, on a la ligne de log HTTP avec 403 et ça suffit, pas besoin de :
sep 06 18:53:17 combo uwsgi[16476]: combo WARNING agents.mesdemarches.saint-lo-agglo.fr 176.148.43.122 27f8919560dc468886fd9889067092 r:7FE451153898 Forbidden (Permission denied): /manage/menu.json Traceback (most recent call last): File "/usr/lib/python3/dist-packages/django/core/handlers/exception.py", line 34, in inner response = get_response(request) File "/usr/lib/python3/dist-packages/django/core/handlers/base.py", line 115, in _get_response response = self.process_exception_by_middleware(e, request) File "/usr/lib/python3/dist-packages/django/core/handlers/base.py", line 113, in _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/usr/lib/python3/dist-packages/django/contrib/auth/decorators.py", line 20, in _wrapped_view if test_func(request.user): File "/usr/lib/python3/dist-packages/combo/urls_utils.py", line 64, in check_manager raise PermissionDenied() django.core.exceptions.PermissionDenied
Fichiers
Demandes liées
Révisions associées
Historique
Mis à jour par Paul Marillonnet il y a plus de 2 ans
- Fichier 0001-logging-shorten-http-403-message-displayed-by-syslog.patch 0001-logging-shorten-http-403-message-displayed-by-syslog.patch ajouté
- Statut changé de Nouveau à En cours
Je doute que pour un formateur et un statut http en particulier, on ait une solution plus élégante que de tronquer le message pré-formaté dans ce cas particulier à l’exécution du formateur, et ceci avant de générer le record.message
qui va se retrouver dans journalctl.
Pour info ça donnerait quelque chose comme ceci. Je vais regarder si je trouve plus une solution plus élégante, sinon j’écrirai les tests.
Mis à jour par Paul Marillonnet il y a plus de 2 ans
Après discussion avec Thomas, on comprend que cette troncation doit avoir lieu dans un filtre plutôt que dans un formateur, c’est plus conforme au module logging
. Voir par exemple https://docs.python.org/3/library/logging.html#filter-objects :
If deemed appropriate, the record may be modified in-place by this [logging.Filter.filter] method.
En revanche, pour revenir à la discussion avec Thomas, ce ne sera pas dans le RequestContextFilter
de hobo, dont le rôle est d’ajouter des informations de contexte à la requête. Je pense qu’il vaut mieux faire un nouveau filtre.
Mis à jour par Frédéric Péters il y a plus de 2 ans
Juste pour préciser ce ticket : il s'agissait de ne pas logguer, pas "raccourcir".
Ça aurait sans doute été plus clair si j'avais précisé le "on a la ligne de log HTTP avec 403", en fait aujourd'hui on a :
sep 15 14:56:01 combo uwsgi[29998]: combo WARNING agents.....fr 31.32.213.189 ff9a210c74724f13a22ed120801464 r:7F0B8C9AC1D0 Forbidden (Permission denied): /manage/menu.json Traceback (most recent call last): File "/usr/lib/python3/dist-packages/django/core/handlers/exception.py", line 34, in inner response = get_response(request) File "/usr/lib/python3/dist-packages/django/core/handlers/base.py", line 115, in _get_response response = self.process_exception_by_middleware(e, request) File "/usr/lib/python3/dist-packages/django/core/handlers/base.py", line 113, in _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/usr/lib/python3/dist-packages/django/contrib/auth/decorators.py", line 20, in _wrapped_view if test_func(request.user): File "/usr/lib/python3/dist-packages/combo/urls_utils.py", line 64, in check_manager raise PermissionDenied() django.core.exceptions.PermissionDenied sep 15 14:56:01 combo uwsgi[18365]: [pid: 29998|app: 0|req: 197322/2179241] 0.0.0.0 () {52 vars in 1324 bytes} [Wed Sep 15 14:56:01 2021] GET /manage/menu.json?callback=jQuery1102029690759224075935_1631710560556&_=1631710560557 => generated 22 bytes in 40 msecs (HTTP/1.0 403) ...
et la dernière ligne, d'uwsgi, elle suffit totalement, zéro utilité à l'erreur du haut.
Mis à jour par Paul Marillonnet il y a plus de 2 ans
Frédéric Péters (absent jusqu’au 20/9) a écrit :
Juste pour préciser ce ticket : il s'agissait de ne pas logguer, pas "raccourcir".
Ça aurait sans doute été plus clair si j'avais précisé le "on a la ligne de log HTTP avec 403", en fait aujourd'hui on a :
[...]
et la dernière ligne, d'uwsgi, elle suffit totalement, zéro utilité à l'erreur du haut.
Ok très bien, faisons comme ça (je pensais que garder la première ligne tronquée pouvait avoir une quelconque utilité – par exemple sur la seconde ligne que tu montres ici, le tenant n’apparaît pas directement).
Mis à jour par Frédéric Péters il y a plus de 2 ans
(sûr ok pour un ticket pour avoir le tenant sur les logs uwsgi)
Mis à jour par Paul Marillonnet il y a plus de 2 ans
- Fichier 0001-logging-filter-out-http-403-messages-in-request-cont.patch 0001-logging-filter-out-http-403-messages-in-request-cont.patch ajouté
- Statut changé de En cours à Solution proposée
- Patch proposed changé de Non à Oui
Mis à jour par Benjamin Dauvergne il y a plus de 2 ans
- Statut changé de Solution proposée à Solution validée
Mis à jour par Paul Marillonnet il y a plus de 2 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit ded8905ebcffe7697635858a4f24748b30639f09 Author: Paul Marillonnet <pmarillonnet@entrouvert.com> Date: Wed Sep 15 15:31:29 2021 +0200 logging: filter out http 403 messages in request context filter (#56711)
Mis à jour par Paul Marillonnet il y a plus de 2 ans
Frédéric Péters (absent jusqu’au 20/9) a écrit :
(sûr ok pour un ticket pour avoir le tenant sur les logs uwsgi)
Mis à jour par Paul Marillonnet il y a plus de 2 ans
- Lié à Development #57007: uwsgi doit faire apparaître le nom de tenant dans les entrées de log ajouté
Mis à jour par Frédéric Péters il y a plus de 2 ans
- Statut changé de Résolu (à déployer) à Solution déployée
logging: filter out http 403 messages in request context filter (#56711)