在 setting.py中添加以下内容:
import logging
import django.utils.log
import logging.handlers
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'standard': {
'format': '%(asctime)s [%(threadName)s:%(thread)d] [%(name)s:%(lineno)d] [%(module)s:%(funcName)s] [%(levelname)s]- %(message)s'
}
# 'verbose': {
# 'format': '{levelname} {asctime} {module} {process:d} {thread:d} {message}',
# 'style': '{',
# },
# 'simple': {
# 'format': '{levelname} {message}',
# 'style': '{',
# },
},
'filters': {
# 'special': {
# '()': 'project.logging.SpecialFilter',
# 'foo': 'bar',
# },
# 'require_debug_true': {
# '()': 'django.utils.log.RequireDebugTrue',
# },
},
'handlers': {
'console': {
'level': 'INFO',
# 'filters': ['require_debug_true'],
'class': 'logging.StreamHandler',
'formatter': 'standard'
},
'file': { # 记录到日志文件(需要创建对应的目录,否则会出错)
'level': 'INFO',
'class': 'logging.handlers.RotatingFileHandler',
'filename': '/var/log/info.log', # 日志输出文件
'maxBytes': 1024*1024*5, # 文件大小
'backupCount': 5, # 备份份数
'formatter': 'standard', # 使用哪种formatters日志格式
}
# 'mail_admins': {
# 'level': 'ERROR',
# 'class': 'django.utils.log.AdminEmailHandler',
# 'filters': ['special']
# }
},
'loggers': {
'django': {
'handlers': ['console'],
'propagate': True,
},
'django.request': {
'handlers': ['file'],
'level': 'INFO',
'propagate': True,
},
'xwjz.task': {
'handlers': ['file'],
'level': 'INFO',
'propagate': True,
# 'filters': ['special']
}
}
}
执行过程:
1.在 views中,定义一个logger,名字为以上代码中loggers(日志管理器)中的某一名称,如为’test.task’
2.’test.task’中的handlers为处理器,即要怎么处理这个日志,则转到了上边的handlers中,在handlers中定义日志怎么输出等信息,如以上的files,则表示让日志以文件的形式输出,formatter则表示使用哪种日志格式,日志格式定义在上边的formatters中
标签:logging,log,handlers,记录,django,日志,level From: https://blog.51cto.com/u_16204217/9028523