-
-
Save huyx/8a89bf7c13545607f2a65a99851694c8 to your computer and use it in GitHub Desktop.
实用的 django logging 配置
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
""" | |
参考: [Django logging settings](http://www.lexev.org/en/2013/django-logging-settings/) | |
代码: https://gist.github.com/st4lk/6725777 | |
修改内容: | |
* formatters: 分成 default_formatter, debug_formatter | |
* NullHandler: 采用 logging 模块的 NullHandler | |
* 格式中增加毫秒数: %(msecs)s | |
* 增加 django.db.backends 的配置,把 SQL 记录在日志文件里面 | |
""" | |
# Logging settings for django projects, works with django 1.5+ | |
# If DEBUG=True, all logs (including django logs) will be | |
# written to console and to debug_file. | |
# If DEBUG=False, logs with level INFO or higher will be | |
# saved to production_file. | |
# Logging usage: | |
# import logging | |
# logger = logging.getLogger(__name__) | |
# logger.info("Log this message") | |
LOGGING = { | |
'version': 1, | |
'disable_existing_loggers': False, | |
'filters': { | |
'require_debug_false': { | |
'()': 'django.utils.log.RequireDebugFalse' | |
}, | |
'require_debug_true': { | |
'()': 'django.utils.log.RequireDebugTrue' | |
} | |
}, | |
'formatters': { | |
'default_formatter': { | |
'format': '%(asctime)s.%(msecs)03d - %(levelname)s - %(name)s - %(message)s', | |
'datefmt': "%Y-%m-%d %H:%M:%S", | |
}, | |
'debug_formatter': { | |
'format': '%(asctime)s.%(msecs)03d - %(levelname)s - %(name)s - %(message)s ' | |
'(%(filename)s:%(lineno)d)', | |
'datefmt': "%Y-%m-%d %H:%M:%S", | |
}, | |
}, | |
'handlers': { | |
'mail_admins': { | |
'level': 'ERROR', | |
'filters': ['require_debug_false'], | |
'class': 'django.utils.log.AdminEmailHandler' | |
}, | |
'console': { | |
'level': 'DEBUG', | |
'filters': ['require_debug_true'], | |
'class': 'logging.StreamHandler', | |
'formatter': 'debug_formatter', | |
}, | |
'production_file': { | |
'level': 'INFO', | |
'class': 'logging.handlers.RotatingFileHandler', | |
'filename': 'logs/main.log', | |
'maxBytes': 1024 * 1024 * 5, # 5 MB | |
'backupCount': 7, | |
'formatter': 'default_formatter', | |
'filters': ['require_debug_false'], | |
}, | |
'debug_file': { | |
'level': 'DEBUG', | |
'class': 'logging.handlers.TimedRotatingFileHandler', | |
'filename': 'logs/main_debug.log', | |
'when': 'h', | |
'backupCount': 48, | |
'formatter': 'debug_formatter', | |
'filters': ['require_debug_true'], | |
}, | |
'null': { | |
"class": 'logging.NullHandler', | |
} | |
}, | |
'loggers': { | |
'django.request': { | |
'handlers': ['mail_admins', 'console'], | |
'level': 'ERROR', | |
'propagate': True, | |
}, | |
'django.db.backends': { | |
'handlers': ['debug_file'], | |
'level': 'DEBUG', | |
'propagate': False, | |
}, | |
'': { | |
'handlers': ['console', 'production_file', 'debug_file'], | |
'level': "DEBUG", | |
}, | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment