思路:使用自定义封装日志器进行日志的输出:按单个文件,按文件大小,按时间。如果初始化异常则使用默认日志器
步骤如下:
1. 默认日志器,默认日志器使用按天分割日志
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# Author : holidaylzz
# Time : 2020/5/10
import time
import yaml.scanner
import logging
import logging.config
from logging.handlers import TimedRotatingFileHandler
from core.util.pathUtil import PathUtil
def basic_logger():
"""
默认日志器
:return:
"""
path_util = PathUtil()
# 在项目中创建日志文件路径,已创建则忽略
path_util.makedirs('log')
# 日志格式
fmt = logging.Formatter('%(asctime)s - %(thread)s - [%(levelname)s] %(pathname)s - %(funcName)s : %(message)s')
# 日志等级
level = logging.INFO
# 日志器
logger = logging.getLogger()
logger.setLevel(level)
# 使用多个不同等级的handler输出到不同日志文件
#info handler
info_filename = path_util.get_project_file_path('log/apiTest.log')
tft_info_handler = TimedRotatingFileHandler(filename=info_filename, when='midnight', backupCount=10, encoding='UTF-8')
tft_info_handler.setLevel(logging.INFO)
tft_info_handler.setFormatter(fmt)
logger.addHandler(tft_info_handler)
# error handler
error_filename = path_util.get_project_file_path('log/apiTest_error.log')
tft_error_handler = TimedRotatingFileHandler(filename=error_filename, when='midnight', backupCount=10, encoding='UTF-8')
tft_error_handler.setLevel(logging.ERROR)
tft_error_handler.setFormatter(fmt)
logger.addHandler(tft_error_handler)
# warn handler
warn_filename = path_util.get_project_file_path('log/apiTest_warn.log')
tft_warn_handler = TimedRotatingFileHandler(filename=warn_filename, when='midnight', backupCount=10, encoding='UTF-8')
tft_warn_handler.setLevel(logging

最低0.47元/天 解锁文章
1165

被折叠的 条评论
为什么被折叠?



