logging 配置color

之前使用的是logging模块,后添加color formatter

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
 @desc:
 @author: 
 @software: PyCharm  on 2018/8/21
"""
import logging
import os
import time
from logging import config
from logging.handlers import RotatingFileHandler

import yaml
from colorlog import colorlog


class FinalLogger:
    def __init__(self):
        file_path = os.path.abspath(os.path.dirname(__file__))
        self.logging_config_path = os.path.join(file_path, "../conf/logging_config.yaml")
        self._log_path = os.path.join(file_path, "../" + "logs")
        if not os.path.exists(self._log_path):
            os.makedirs(self._log_path)
        with open(self.logging_config_path, encoding="utf-8") as f:
            log_config = yaml.load(f.read())
            log_config["handlers"]["info_file_handler"]["filename"] = \
                os.path.join(self._log_path, log_config["handlers"]["info_file_handler"]["filename"])
        logging.config.dictConfig(log_config)

    @classmethod
    def get_logger(cls):
        """
        :return: 返回logger句柄
        """
        logger = logging.getLogger()

        formatter = colorlog.ColoredFormatter(
            "%(log_color)s%(asctime)s %(name)s %(filename)s:%(lineno)d [%(levelname)s]: %(message)s")

        for hdr in logger.handlers:
            if not isinstance(hdr, RotatingFileHandler):
                hdr.formatter = formatter

        return logger


logger = FinalLogger().get_logger()
del FinalLogger


if __name__ == "__main__":
    logger.info("i am a err1!")
    logger.error("i am a err2!")

yaml配置

version: 1

disable_existing_loggers: True

formatters:
  simple:
    format: "%(asctime)s %(name)s %(filename)s:%(lineno)d [%(levelname)s]: %(message)s"
    datefmt: '%F %T'

handlers:
  console:
    class: logging.StreamHandler
    level: DEBUG
    formatter: simple
    stream: ext://sys.stdout
  info_file_handler:
    class: logging.handlers.RotatingFileHandler
    level: INFO
    formatter: simple
    filename: autotest.log # 
    maxBytes: 10485760 # 10MB
    backupCount: 20 #most 20 extensions
    encoding: utf8

root:
  level: DEBUG
  handlers: [console, info_file_handler]

屏幕快照 2019-07-27 11.04.55.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 本文参考自:https://www.cnblogs.com/Nicholas0707/p/9021672.html...
    handsomePeng阅读 5,289评论 1 4
  • (一)、日志相关概念 1、日志的作用 通过log的分析,可以方便用户了解系统或软件、应用的运行情况;如果你的应用l...
    Rainy丶Wang阅读 3,725评论 0 0
  • 在现实生活中,记录日志非常重要。银行转账时会有转账记录;飞机飞行过程中,会有黑盒子(飞行数据记录器)记录飞行过程中...
    chliar阅读 4,200评论 1 0
  • 很久没联系的初中隔壁班男生给我打了一个电话 让我猜他是谁 上学时就没有说过话啊 他说去年夏天见到过我,但是大家都变...
    崔大迪奥阅读 1,207评论 0 1
  • 在人际关系当中,和谐真的很重要。就是撕破脸这种现象千万不要发生。即使以后和好了,心中的芥蒂还在,伤心不已,伤口不能...
    求无1824阅读 3,749评论 0 0

友情链接更多精彩内容