Django使用python自带的logging 作为日志打印工具。简单介绍下logging。
logging 是线程安全的,其主要由4部分组成:
用户使用logging.getLogger([name])获取logger实例。
如果没有名字,返回logger层级中的根logger(root logger)。以相同名字调用该函数总是返回同一个logger实例。这意味着logger实例不需要在应用的各个部分之间传来传去。
Django通过在settings文件中使用LOGGING来定制日志输出(包括定义logger, handler, formatter等)
例如,settings文件中定义如下:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'verbose': {
'format': '[%(asctime)s] [%(levelname)s] %(message)s'
},
},
'handlers': {
'console':{
'level':'INFO',
'class':'logging.StreamHandler',
'formatter': 'verbose'
},
'file': {
'level': 'INFO',
'class': 'logging.FileHandler',
'filename': 'D:/monitor.log',
'formatter': 'verbose'
},
'email': {
'level': 'ERROR',
'class': 'django.utils.log.AdminEmailHandler',
'include_html' : True,
}
},
'loggers': {
'django': {
'handlers': ['console', 'file', 'email'],
'level': 'INFO',
'propagate': True,
},
},
}
代码中打印日志:
logger = logging.getLogger(‘django’)
logger.info(“This is an error msg”)
[2017-07-15 17:44:51,316] [ERROR] This is an error msg
这样,日志就被打印到终端和文件。
关于django logging 想了解更多,可参考官网
https://docs.djangoproject.com/en/1.11/topics/logging/