在django中使用logging模組
我用的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,還是很方便的。