logging模块初使用

带颜色输出

先安装 logging colorlog

pip install logging 
pip install colorlog
代码
# 新建 log.py
import logging
import os
from datetime import datetime

import colorlog
# 颜色自定义即可
log_colors_config = {
    'DEBUG': 'white',
    'INFO': 'blue',
    'WARNING': 'yellow',
    'ERROR': 'red',
    'CRITICAL': 'bold_red',
}
# 输出日志路径
PATH = os.path.abspath('.') + '\\logs'
# 设置日志文件输出格式
FMT = '%(asctime)s %(filename)s [line:%(lineno)d] %(levelname)s: %(message)s'
# 设置日志控制台输出格式  %(log_color)s 不能丢 用来显示颜色
console = f"%(log_color)s{FMT}"
# 设置时间格式
DATE_FMT = '%Y-%m-%d %H:%M:%S'
#设置时间格式
file = f'{datetime.now().strftime("%Y-%m-%d_%H_%M")}.log'


class Log(object):
    def __init__(self):
        self.logger = logging.getLogger()
        self.formatter = logging.Formatter(fmt=FMT, datefmt=DATE_FMT)
        self.console_formatter = colorlog.ColoredFormatter(fmt=console , datefmt=DATE_FMT, log_colors=log_colors_config)
        self.log_filename = f"{PATH}\\{file}"
        # 判断文件夹是否存在,不存在则创建
        os.path.exists(PATH) or os.makedirs(PATH)
        # 判断文件是否存在,不存在则创建 此处为 cmd 创建
        os.path.exists(self.log_filename) or (
                os.system(f"cd {PATH}") and os.system(r"type nul>{}".format(file)))
        # 设置日志的默认级别
        self.logger.setLevel(logging.INFO)
        self.file_handler = self.file_handler(self.log_filename)
        self.console_handler = self.console_handler()
        if not self.logger.handlers:
            self.logger.addHandler(self.file_handler)
            self.logger.addHandler(self.console_handler)
        self.file_handler.close()
        self.console_handler.close()

    # 输出到文件handler的函数定义
    def file_handler(self, filename):
        file_handler = logging.FileHandler(filename, mode='a', encoding="utf-8")
        file_handler.setLevel(logging.INFO)
        file_handler.setFormatter(self.formatter)
        return file_handler

    # 输出到控制台handler的函数定义
    def console_handler(self):
        console_handler = logging.StreamHandler()
        console_handler.setLevel(logging.DEBUG)
        console_handler.setFormatter(self.console_formatter)
        return console_handler

使用
# 文件路径按照自己的来
from settings.log import Log
log = Log().logger
log.info("INFO")
log.warning("WARNING")
log.error("ERR")
log.debug("DEBUG")
log.critical("CRITICAL")

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

trust Tomorrow

感谢支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值