文章目录
1.python代码实现完整的日志功能
需求:
1)要求将所有级别的所有日志都写入磁盘文件中
2)all.log文件中记录所有的日志信息,日志格式为:日期和时间 - 日志级别 - 日志信息
3)error.log文件中单独记录error及以上级别的日志信息,日志格式为:日期和时间 - 日志级别 - 文件名[:行号] - 日志信息
4)要求all.log在每天凌晨进行日志切割
代码实现:
import logging
import logging.handlers
import datetime
logger = logging.getLogger('mylogger')
logger.setLevel(logging.DEBUG)
rf_handler = logging.handlers.TimedRotatingFileHandler('all.log', when='midnight', interval=1, backupCount=7, atTime=datetime.time(0, 0, 0, 0))
rf_handler.setFormatter(logging.Formatter("%(asctime)s - %(levelname)s - %(message)s"))
f_handler = logging.FileHandler('error.log')
f_handler.setLevel(logging.ERROR)
f_handler.setFormatter(logging.Formatter("%(asctime)s - %(levelname)s - %(filename)s[:%(lineno)d] - %(message)s"))
logger.addHandler(rf_handler)
logger.addHandler(f_handler)
logger.debug('debug message')
logger.info('info message')
logger.warning('warning message')
logger.error('error message')
logger.critical('critical message')
all.log文件输出
2018-05-13 16:12:40,612 - DEBUG - debug message
2018-05-13 16:12:40,612 - INFO - info message
2018-05-13 16:12:40,612 - WARNING - warning message
2018-05-13 16:12:40,612 - ERROR - error message
2018-05-13 16:12:40,613 - CRITICAL - critical message
error.log文件输出
2018-05-13 16:12:40,612 - ERROR - log.py[:81] - error message
201-05-13 16:12:40,613 - CRITICAL - log.py[:82] - critical message
2. 日志在django中的应用的三种方式
1.直接在settings.py中配置
#########################
## Django Logging BEGIN
#########################
#LOGGING_DIR 日志文件存放目录
LOGGING_DIR = "/home/xxt/logs"
if not os.path.exists(LOGGING_DIR):
os.mkdir(LOGGING_DIR)
import logging
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'standard': {
'format': '