django的日志配置文件
放入settings.py中
# logger
import datetime
LOGGING = {
'version': 1,
'disable_existing_loggers': True,
'formatters': {
'standard': {
'format': '%(asctime)s [%(name)s:%(lineno)d] [%(module)s:%(funcName)s] [%(levelname)s] %(message)s'}
},
'filters': {
},
'handlers': {
'mail_admins': {
'level': 'ERROR',
'class': 'django.utils.log.AdminEmailHandler',
'include_html': True,
},
'default': {
'level': 'DEBUG',
'class': 'logging.handlers.RotatingFileHandler',
'filename': '{}/engine_{}.log'.format("/var/log/project", datetime.datetime.now().date()), # 日志输出文件
'maxBytes': 1024 * 1024 * 5, # 文件大小
'backupCount': 5, # 备份份数
'formatter': 'standard', # 使用哪种formatters日志格式
},
'error': {
'level': 'ERROR',
'class': 'logging.handlers.RotatingFileHandler',
'filename': '{}/engine_Error_{}.log'.format("/var/log/project", datetime.datetime.now().date()),
'maxBytes': 1024 * 1024 * 5,
'backupCount': 5,
'formatter': 'standard',
},
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
'formatter': 'standard'
},
'request_handler': {
'level': 'DEBUG',
'class': 'logging.handlers.RotatingFileHandler',
'filename': '{}/engine_Request_{}.log'.format("/var/log/project", datetime.datetime.now().date()),
'maxBytes': 1024 * 1024 * 5,
'backupCount': 5,
'formatter': 'standard',
},
'scripts_handler': {
'level': 'DEBUG',
'class': 'logging.handlers.RotatingFileHandler',
'filename': '{}/engine_Script_{}.log'.format("/var/log/project", datetime.datetime.now().date()),
'maxBytes': 1024 * 1024 * 5,
'backupCount': 5,
'formatter': 'standard',
}
},
'loggers': {
# 框架本身运行相关日志
# 'django': {
# 'handlers': ['default'],
# 'level': 'DEBUG',
# 'propagate': False
# },
'django.request': {
'handlers': ['request_handler'],
'level': 'DEBUG',
'propagate': False,
},
'scripts': {
'handlers': ['scripts_handler'],
'level': 'INFO',
'propagate': False
},
# 只输出到控制台,不写入日志文件
'console': {
'handlers': ['console'],
'level': 'DEBUG',
'propagate': True
},
# app engine 模块的日志处理 并输出到控制台
'engine': {
'handlers': ['default', 'error', 'console'],
'level': 'DEBUG',
'propagate': True
},
# 日志写入上面handlers定义的error所指向的log日志文件 并输出到控制台
'app01': {
'handlers': ['error', 'console'],
'level': 'ERROR',
'propagate': True
},
# 日志同时写入上面handlers定义的default和error所指向的log日志文件
'app02': {
'handlers': ['default', 'error'],
'level': 'ERROR',
'propagate': True
},
}
}
在调用的地方
import logging
logger = logging.getLogger("app01")