== Logging Si on veut propager les logs entre applications, il faut bien spécifier l'attribut `propagate`, sans quoi on s'arrêtera au module sans prendre en considération les sous-modules. [source,python] ---- LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'formatters': { 'verbose': { 'format': '{levelname} {asctime} {module} {process:d} {thread:d} {message}', 'style': '{', }, 'simple': { 'format': '{levelname} {asctime} {module} {message}', 'style': '{', }, }, 'handlers': { 'console': { 'level': 'DEBUG', 'class': 'logging.StreamHandler', 'formatter': "simple" } }, 'loggers': { 'connexys': { 'handlers': ['console'], 'level': 'DEBUG', 'propagate': True, }, 'stp': { 'handlers': ['console'], 'level': 'DEBUG', 'propagate': True, }, } } ---- Par exemple: [source,python] ---- 'loggers': { 'mv': { # Parent 'handlers': ['file'], 'level': 'DEBUG', }, 'mv.models': { # Enfant 'handlers': ['console'], 'level': 'DEBUG', 'propagate': True, } }, ---- Et dans le fichier `mv/models.py`, on a ceci: [source,python] ---- logger = logging.getLogger(__name__) logger.debug('helloworld'); ---- Le log sera écrit dans la console **ET** dans le fichier. Par contre, si on retire l'attribut `propagate: True` (ou qu'on le change en `propagate: False`), le même code ci-dessus n'écrit que dans la console. Simplement parce que le log associé à un package considère par défaut ses enfants, alors que le log associé à un module pas. [Par exemple](https://docs.djangoproject.com/en/2.1/topics/logging/#examples).