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

 

posted @ 2021-02-09 20:50  栗子测试开发  阅读(122)  评论(0)    收藏  举报