7 log 封装
1 配置文件
[loggers] keys = root,errorLogger [logger_root] level = ERROR handlers = errorHandler [logger_errorLogger] level = ERROR propagate = 0 handlers = errorHandler qualname = errorLogger [handlers] keys = errorHandler [handler_errorHandler] class=logging.handlers.TimedRotatingFileHandler level=ERROR args = ('../logs/log_20201015113838.txt','D',1,5,) formatter = errorFmt [formatters] keys = errorFmt [formatter_errorFmt] class = logging.Formatter format = %(asctime)s %(levelname)s %(filename)s %(funcName)s [line:%(lineno)d] %(message)s datefmt = %Y-%m-%d %H:%M:%S
2 封装logger
- 替换 conf 文件中的 log 日志文件名
- 在 log 文件中追加 log
import logging import logging.config import re class logger(): start_time = None @classmethod def set_filename(self, starttime): file_data = "" # 读配置文件 with open('../config/conf_log.conf', 'r') as f: for line in f: # 全文查找 20201015113838 file_date = re.findall('\d{14}', line) # 找到 20201015113838 if len(file_date) != 0: # re.sub(pattern, repl, string, count=0, flags=0) # pattern:要被替换的字符串 # repl:替换成什么字符串 # string:要被替换的那个string字符串 line = re.sub('\d{14}', starttime, line) # 文件内容用 file_data 保存 file_data += line # 写新的配置文件,主要替换文件名 args with open('../config/conf_log.conf', 'w') as new_f: # file_data 将内容写入文件 new_f.write(file_data) @classmethod def append(self): logging.config.fileConfig(fname='../config/conf_log.conf') append = logging.getLogger("errorLogger") return append
3 log 展示
4 参考
https://blog.csdn.net/shuiganjiuying11/article/details/90239147