Je voudrais utiliser dictConfig , mais la documentation est un peu abstraite. Où puis-je trouver un exemple concret, copier-coller du dictionnaire utilisé avec dictConfig
?
Et ici!
{
'version': 1,
'disable_existing_loggers': True,
'formatters': {
'standard': {
'format': '%(asctime)s [%(levelname)s] %(name)s: %(message)s'
},
},
'handlers': {
'default': {
'level': 'INFO',
'formatter': 'standard',
'class': 'logging.StreamHandler',
'stream': 'ext://sys.stdout', # Default is stderr
},
},
'loggers': {
'': { # root logger
'handlers': ['default'],
'level': 'INFO',
'propagate': False
},
'my.packg': {
'handlers': ['default'],
'level': 'WARNING',
'propagate': False
},
'__main__': { # if __== '__main__'
'handlers': ['default'],
'level': 'DEBUG',
'propagate': False
},
}
}
La réponse acceptée est Nice! Et si on pouvait commencer par quelque chose de moins complexe? Le module de journalisation est une chose très puissante et la documentation est un peu écrasante, surtout pour les novices. Mais pour le début, vous n'avez pas besoin de configurer les formateurs et les gestionnaires. Vous pouvez l'ajouter lorsque vous comprenez ce que vous voulez.
Par exemple:
import logging.config
DEFAULT_LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'loggers': {
'': {
'level': 'INFO',
},
'another.module': {
'level': 'DEBUG',
},
}
}
logging.config.dictConfig(DEFAULT_LOGGING)
logging.info('Hello, log')
J'ai trouvé Django v1.11.15 configuration par défaut ci-dessous, j'espère que cela aide
DEFAULT_LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'filters': {
'require_debug_false': {
'()': 'Django.utils.log.RequireDebugFalse',
},
'require_debug_true': {
'()': 'Django.utils.log.RequireDebugTrue',
},
},
'formatters': {
'Django.server': {
'()': 'Django.utils.log.ServerFormatter',
'format': '[%(server_time)s] %(message)s',
}
},
'handlers': {
'console': {
'level': 'INFO',
'filters': ['require_debug_true'],
'class': 'logging.StreamHandler',
},
'Django.server': {
'level': 'INFO',
'class': 'logging.StreamHandler',
'formatter': 'Django.server',
},
'mail_admins': {
'level': 'ERROR',
'filters': ['require_debug_false'],
'class': 'Django.utils.log.AdminEmailHandler'
}
},
'loggers': {
'Django': {
'handlers': ['console', 'mail_admins'],
'level': 'INFO',
},
'Django.server': {
'handlers': ['Django.server'],
'level': 'INFO',
'propagate': False,
},
}
}