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")
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 504b 0304 1400 0008 0800 4498 963d a6fa9ff3 9f41 1e00 a88...
    BossOx阅读 13,925评论 0 0
  • 6270 a1da b5e7 b8aa 4d60 60c6 dea2 9fcc66b3 1acd 0596 77b...
    BossOx阅读 13,200评论 0 0
  • 504b 0304 1400 0008 0800 fa8c 963d 50740baa dffc 0e00 6cd...
    BossOx阅读 8,861评论 0 0
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 12,732评论 28 53
  • 信任包括信任自己和信任他人 很多时候,很多事情,失败、遗憾、错过,源于不自信,不信任他人 觉得自己做不成,别人做不...
    吴氵晃阅读 11,351评论 4 8