在使用 django 的 logging 的时候,配置之后,测试发现,只有调用 ERROR 的时候,信息才会被写到文件, DEBUG 和 INFO 部分没有被记录,请问大家有没有遇到过类似的情况,多谢。
LOGGING = {
'version': 1,
'disable_existing_loggers': True,
'filters': {
'require_debug_false': {
'()': 'django.utils.log.RequireDebugFalse',
},
'require_debug_true': {
'()': 'django.utils.log.RequireDebugTrue',
},
},
'formatters': {
'simple': {
'format': '[%(asctime )s] %(levelname )s %(message )s',
'datefmt': '%Y-%m-%d %H:%M:%S'
},
'verbose': {
'format': '[%(asctime )s] %(levelname )s [%(name )s.%(funcName )s:%(lineno )d] %(message )s',
'datefmt': '%Y-%m-%d %H:%M:%S'
},
},
'handlers': {
'console': {
'level': 'DEBUG',
'filters': ['require_debug_true'],
'class': 'logging.StreamHandler',
'formatter': 'simple'
},
'development_logfile': {
'level': 'DEBUG',
'filters': ['require_debug_true'],
'class': 'logging.handlers.RotatingFileHandler',
'filename': '/data/log/django/dyd/django_dev.log',
'maxBytes': 1024 * 1024 * 5, # 5 MB
'backupCount': 7,
'formatter': 'verbose'
},
'production_logfile': {
'level': 'ERROR',
'filters': ['require_debug_false'],
'class': 'logging.handlers.RotatingFileHandler',
'filename': '/data/log/django/dyd/django_production.log',
'maxBytes': 1024 * 1024 * 5, # 5 MB
'backupCount': 7,
'formatter': 'simple'
},
'dba_logfile': {
'level': 'DEBUG',
'filters': ['require_debug_false','require_debug_true'],
'class': 'logging.handlers.RotatingFileHandler',
'filename': '/data/log/django/dyd/django_dba.log',
'maxBytes': 1024 * 1024 * 5, # 5 MB
'backupCount': 7,
'formatter': 'simple'
},
},
'loggers': {
'dyd': {
'handlers': ['development_logfile','production_logfile'],
},
'invitesport': {
'handlers': ['development_logfile','production_logfile'],
},
'dba': {
'handlers': ['console','dba_logfile'],
},
'django': {
'handlers': ['console','development_logfile','production_logfile'],
},
'py.warnings': {
'handlers': ['console','development_logfile'],
},
}
}
测试代码:
>>> import logging
>>> logg=logging.getLogger ('dyd')
>>> logg.info ('adsfasdf')
>>> logg.error ('adsfasdf')
文件内容:
[2015-08-26 18:13:43] ERROR [dyd.<module>:1] adsfasdf
1
julyclyde 2015-08-27 14:34:14 +08:00
'filters': ['require_debug_false','require_debug_true'], 这俩是不是语义冲突啊?
另外这是 python 的 logging 吧,不是 django 的。 django 并没有额外的 logging 机制 |