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

40次阅读

共计 1745 个字符,预计需要花费 5 分钟才能阅读完成。

微信公众号: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 集中营】,专一于 python 技术栈,材料获取、交换社区、干货分享,期待你的退出~

正文完
 0