gwift-book/source/part-2-deployment/logging.adoc

57 lines
2.0 KiB
Plaintext
Raw Normal View History

2020-02-16 21:11:51 +01:00
== Logging
2020-12-28 20:52:48 +01:00
La configuration des _loggers_ est relativement simple, un peu plus complexe si nous nous penchons dessus, et franchement complète si nous creusons encore.
Il est ainsi possible de définir des formattages, gestionnaires (_handlers_) et loggers distincts, en fonction de nos applications.
Sauf que comme nous l'avons vu avec les 12 facteurs, nous devons traiter les informations de notre application comme un flux d'évènements.
Il n'est donc pas réellement nécessaire de chipoter la configuration, puisque la seule classe qui va réellement nous intéresser concerne les `StreamHandler`.
La configuration que nous allons utiliser est celle-ci:
. Formattage: à définir - mais la variante suivante est complète, lisible et pratique: `{levelname} {asctime} {module} {process:d} {thread:d} {message}`
. Handler: juste un, qui définit un `StreamHandler`
. Logger: pour celui-ci, nous avons besoin d'un niveau (`level`) et de savoir s'il faut propager les informations vers les sous-paquets, auquel cas il nous suffira de fixer la valeur de `propagate` à `True`.
2018-11-14 11:46:34 +01:00
2020-02-16 21:11:51 +01:00
[source,python]
----
2018-11-14 11:46:34 +01:00
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'verbose': {
'format': '{levelname} {asctime} {module} {process:d} {thread:d} {message}',
},
'simple': {
'format': '{levelname} {asctime} {module} {message}',
},
},
2018-11-14 11:46:34 +01:00
'handlers': {
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
2020-12-28 20:52:48 +01:00
'formatter': "verbose"
}
2018-11-14 11:46:34 +01:00
},
'loggers': {
2020-12-28 20:52:48 +01:00
'khana': {
'handlers': ['console'],
2020-12-28 20:52:48 +01:00
'level': env("LOG_LEVEL", default="DEBUG"),
2018-11-14 11:46:34 +01:00
'propagate': True,
2020-12-28 20:52:48 +01:00
},
}
2018-11-14 11:46:34 +01:00
}
2020-02-16 21:11:51 +01:00
----
2020-12-28 20:52:48 +01:00
Pour utiliser nos loggers, il suffit de copier le petit bout de code suivant:
2020-02-16 21:11:51 +01:00
[source,python]
----
2020-12-28 20:52:48 +01:00
import logging
logger = logging.getLogger(__name__)
2020-12-28 20:52:48 +01:00
logger.debug('helloworld')
2020-02-16 21:11:51 +01:00
----
2020-12-28 20:52:48 +01:00
https://docs.djangoproject.com/en/stable/topics/logging/#examples[Par exemples].