python知识巩固 | 自定义日志模块封装,将日志格式化打印到控制台或是输出到文件?

相关依赖库
 1# -*- coding: UTF-8 -*-
 2
 3# 日志模块
 4
 5import logging
 6
 7# 时间模块
 8
 9import datetime
10
11# 系统操作模块
12
13import os
14
15# 日志处理模块
16
17from logging import handlers

前往 【阅读原文】

初始化全局参数
 1class LogUtil(object):
 2
 3    def __init__(self, log_name):
 4
 5        '''初始化参数'''
 6
 7        # 日志名称
 8
 9        self.log_name = log_name
10
11        # 日志对象
12
13        self.logger = logging.getLogger(self.log_name)
14
15        # 日志级别
16
17        self.logger.setLevel(logging.DEBUG)
18
19        # 日志时间格式化
20
21        self.log_time = datetime.datetime.now().strftime("%Y-%m-%d_%H:%M:%S")
控制台输出
 1def console_output(self):
 2
 3    # 日志输出
 4
 5    self.handlers = logging.StreamHandler()
 6
 7    self.handlers.setLevel(logging.DEBUG)
 8
 9    # 格式化日志输出格式
10
11    self.format = logging.Formatter('[%(asctime)s][%(filename)s][line:%(lineno)d][%(levelname)s] - [%(message)s]',
12                                    "%Y-%m-%d %H:%M:%S")
13
14    self.handlers.setFormatter(self.format)
15
16    # 将日志添加到logger对象中
17
18    self.logger.addHandler(self.handlers)
19
20    return self.logger
文件内输出
 1def file_output(self, file_path="/usr/data/load/", file_name="log"):
 2
 3    # 将日志输出到文件
 4
 5    self.file_full_path = os.path.join(file_path, file_name + ".log")
 6
 7    self.handlers = handlers.TimedRotatingFileHandler(self.file_full_path, when='midnight',
 8                                                      interval=1, backupCount=50)
 9
10    # 格式化日志输出格式
11
12    self.format = logging.Formatter('[%(asctime)s][%(filename)s][line:%(lineno)d][%(levelname)s] - [%(message)s]',
13                                    "%Y-%m-%d %H:%M:%S")
14
15    self.handlers.setFormatter(self.format)
16
17    # 将日志添加到logger对象中
18
19    self.logger.addHandler(self.handlers)
20
21    return self.logger
调用日志模块
 1if __name__ == '__main__':
 2    '''
 3    控制台日志输出调用
 4    '''
 5    # logger = LogUtil("测试控制台日志输出").console_output()
 6
 7    # logger.info("我是一个info")
 8
 9    # logger.debug("我是一个debug")
10
11    # logger.error("我是一个error")
12
13    '''
14    文件内日志输出调用
15    '''
16
17    logger = LogUtil("测试输出到文件").file_output(file_path="C:\\")
18
19    logger.info("test")

你可能感兴趣的:(python知识巩固 | 自定义日志模块封装,将日志格式化打印到控制台或是输出到文件?)