原文作者:我辈李想
版权声明:文章原创,转载时请务必加上原文超链接、作者信息和本声明。
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'verbose': {
'format': "[%(asctime)s] %(levelname)s [%(name)s:%(lineno)s] %(message)s",
'datefmt': "%Y-%m-%d %H:%M:%S"
},
'simple': {
'format': '[%(levelname)-7s] %(asctime)s - %(message)s'
},
},
"filters": {
# "special": {
# "()": "project.logging.SpecialFilter",
# "foo": "bar",
# },
"require_debug_true": {
"()": "django.utils.log.RequireDebugTrue",
},
},
'handlers': {
# 控制台
'console': {
'level': 'DEBUG',
# "filters": ["require_debug_true"],
'class': 'logging.StreamHandler',
'formatter': 'simple' # 制定输出的格式
},
# sql
'db_backends': {
'level': 'DEBUG',
'class': 'logging.FileHandler',
'filename': 'logs/sql.log',
'formatter': 'verbose'
},
# 处理程序
'django_app': {
'level': 'INFO',
'class': 'logging.handlers.RotatingFileHandler',
'maxBytes': 1024 * 1024 * 10,
'backupCount': 10,
'filename': os.path.join(BASE_DIR, 'logs/django_app.log'),
'formatter': 'verbose'
},
'default': {
'level': 'DEBUG',
'class': 'logging.handlers.RotatingFileHandler',
'filename': os.path.join(BASE_DIR, 'logs/mercury.log'), # 日志输出文件
'maxBytes': 1024 * 1024 * 5, # 文件大小
'backupCount': 10, # 备份份数
'formatter': 'verbose', # 使用哪种formatters日志格式
},
},
'loggers': {
# 应用中自定义日志记录器
'django': {
'handlers': ["console", 'django_app'],
'level': 'INFO', # 默认是INFO
'propagate': True, # 单独记录,不需要传递
},
# 数据库操作日志
'django.db.backends': {
'handlers': ['console', 'db_backends', 'django_app'],
'level': 'DEBUG', # 数据库日志需要DEBUG
'propagate': False, # 最终传递给django
},
'app': {
'handlers': ['console', 'django_app'],
'level': 'INFO', # 日常使用都是INFO以上
'propagate': True, # 单独记录,不需要传递
},
},
}