我用的django的版本是1.3,听闻django可以配置日志模块,不用自己单独写,于是一阵狂搜加看官方文档解决了我的需求。
我的需求是需要配置多个日志文件,网上搜出来大部分是一个的,所以给大家一个我的例子做参考。
1.在setting.py里面配置如下:
# more details on how to customize your logging configuration.
LOGGING = {
'version': 1,
'disable_existing_loggers': True,
'formatters': {
'standard': {
'format': '%(levelname)s %(asctime)s %(message)s'
},
},
'filters': {
},
'handlers': {
'mail_admins': {
'level': 'ERROR',
'class': 'django.utils.log.AdminEmailHandler',
'formatter':'standard',
},
'test1_handler': {
'level':'DEBUG',
'class':'logging.handlers.RotatingFileHandler',
'filename':'path1',
'formatter':'standard',
},
'test2_handler': {
'level':'DEBUG',
'class':'logging.handlers.RotatingFileHandler',
'filename':'path2',
'formatter':'standard',
},
},
'loggers': {
'django.request': {
'handlers': ['mail_admins'],
'level': 'ERROR',
'propagate': True,
},
'test1':{
'handlers': ['test1_handler'],
'level': 'INFO',
'propagate': False
},
'test2':{
'handlers': ['test2_handler'],
'level': 'INFO',
'propagate': False
},
}
}
里面的level什么的可以自己调整,需要几个文件就配几个handler和logger,还是很方面的。用的时候怎么用呢,看下面吧。
2. 在要用log的view.py里面,如果想用test1这个日志,则
log=logging.getLogger('test1')
log.error(“日志内容”)
如果,想要在日志内容里面传递变量,怎么办
log.error(" %s : execute %s failed",变量1,变量2),比较像c的printf,还是很方便的。