配置logger日志模块
log配置模板
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'verbose': {
'format': '%(levelname)s %(asctime)s %(module)s %(lineno)d %(message)s'
},
'simple': {
'format': '%(levelname)s %(module)s %(lineno)d %(message)s'
},
},
'filters': {
'require_debug_true': {
'()': 'django.utils.log.RequireDebugTrue',
},
},
'handlers': {
'console': {
'level': 'DEBUG',
'filters': ['require_debug_true'],
'class': 'logging.StreamHandler',
'formatter': 'simple'
},
# 往文件种打印
'file': {
# 实际开发建议使用WARNING以上的级别,如果太低了,就连用户访问都记录的化,不利于开发测试
'level': 'INFO',
'class': 'logging.handlers.RotatingFileHandler',
# 日志位置,日志文件名,日志保存目录必须手动创建,注:这里的文件路径要注意BASE_DIR代表的是小luffyapi
'filename': os.path.join(os.path.dirname(BASE_DIR), "logs", "luffy.log"),
# 日志文件的最大值,这里我们设置300M
'maxBytes': 300 * 1024 * 1024,
# 日志文件的数量,设置最大日志数量为10
'backupCount': 10,
# 日志格式:详细格式
'formatter': 'verbose',
# 文件内容编码
'encoding': 'utf-8'
},
},
# 日志对象
'loggers': {
'django': {
# django默认的是往控制台种打的,现在,我们需要让他往文件中打,
# 因为对于测试来说很重要,
'handlers': ['console', 'file'],
'propagate': True, # 是否让日志信息继续冒泡给其他的日志处理系统
},
}
}
二次封装logger
# 测试脚本文件中
# 在任何文件中使用logger,都可以导入dev中配置的logging
# import logging
# logger = logging.getLogger('django')
#
# # 以上两句话,在哪个文件用的时候,我们都要写,所以我们可以进行封装一下
# # 直接写在我们创建的自己写的utils工具包中
# logger.info('123')
# utils/logging.py
# 在任何文件中使用logger,都可以导入dev中配置的logging
import logging
logger = logging.getLogger('django')
# 测试脚本文件中
from utils.logging import logger
logger.info('123')
# 这里没有debug,logging有默认的级别,
# 因为在dev配的logger有默认的级别,需要在loggin中在配置
logger.debug('123')
settings/dev.py
见下图