文章

Python的通用日志工具类.md

记录一下Python的通用日志类代码

一、工具类代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#!/usr/bin/env python
import logging
import os
import colorlog


class LogHandler(object):

    def __init__(self, filename, level=logging.INFO):
        self.logger = logging.getLogger(filename)
        self.log_colors_config = {
            'DEBUG': 'cyan',
            'INFO': 'green',
            'WARNING': 'yellow',
            'ERROR': 'red',
            'CRITICAL': 'red',
        }
        formatter = colorlog.ColoredFormatter(
            '%(log_color)s%(asctime)s  %(filename)s[line:%(lineno)d] %(levelname)s: %(message)s',
            log_colors=self.log_colors_config)

        # 设置日志级别
        self.logger.setLevel(level)
        # 往屏幕上输出
        console_handler = logging.StreamHandler()
        # 判断文件夹是否存在
        if not os.path.exists('./logs/'):
            os.mkdir('./logs/')
        # 输出到文件
        file_handler = logging.FileHandler(filename=filename, mode='a', encoding='utf8')
        file_formatter = logging.Formatter('%(asctime)s  %(filename)s[line:%(lineno)d] %(levelname)s: %(message)s')
        # 设置屏幕上显示的格式
        console_handler.setFormatter(formatter)
        # 设置写入文件的格式
        file_handler.setFormatter(file_formatter)
        # 把对象加到logger里
        self.logger.addHandler(console_handler)
        self.logger.addHandler(file_handler)


L = LogHandler('./logs/info.log',level=logging.INFO)
# L = LogHandler('./logs/error.log',level=logging.ERROR)
# L = LogHandler('./logs/warning.log',level=logging.WARNING)
# L = LogHandler('./logs/debug.log',level=logging.DEBUG)

if __name__ == '__main__':
    L.logger.info("测试info")
    L.logger.error("error")
    L.logger.warning("warning")
    L.logger.debug("debug")

上述代码放入项目,然后用下面的方式引入依赖,并使用

1
2
3
4
5
6
7
8
# 引入依赖
from logger import L

# 代码使用
L.logger.info("记录")
L.logger.error("错误信息")
L.logger.warning("警告信息")
L.logger.debug('DEBUG信息')

二、注意点

使用该工具类需要安装一个包,python2和python3分别安装方法如下:

1
2
pip2 install colorlog
pip3 install colorlog
本文由作者按照 CC BY 4.0 进行授权