【python】【logging】python如何使用logging模块,一个完美的logging模块

python 复制代码
import copy
import logging
import sys


class ColoredFormatter(logging.Formatter):
    COLORS = {
        "DEBUG": "\033[0;36m",  # CYAN
        "INFO": "\033[0;32m",  # GREEN
        "WARNING": "\033[0;33m",  # YELLOW
        "ERROR": "\033[0;31m",  # RED
        "CRITICAL": "\033[0;37;41m",  # WHITE ON RED
        "RESET": "\033[0m",  # RESET COLOR
    }

    def format(self, record):
        colored_record = copy.copy(record)
        levelname = colored_record.levelname
        seq = self.COLORS.get(levelname, self.COLORS["RESET"])
        colored_record.levelname = f"{seq}{levelname}{self.COLORS['RESET']}"
        return super().format(colored_record)


# Create a new logger
logger = logging.getLogger("user_server")
logger.propagate = False
# Add handler if we don't have one.
if not logger.handlers:
    handler = logging.StreamHandler(sys.stdout)
    handler.setFormatter(
        ColoredFormatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")
    )
    logger.addHandler(handler)

# Configure logger
loglevel = getattr(logging, "INFO", "info")
logger.setLevel(loglevel)

logger.info("sdfasdasdas")
logger.warning("sdfasdasdas")
logger.error("sdfasdasdas")
相关推荐
猫猫头有亿点炸14 分钟前
C语言斐波拉契数列2.0
c语言·开发语言·算法
刚入坑的新人编程22 分钟前
C++多态
开发语言·c++
灏瀚星空32 分钟前
从单机工具到协同平台:开源交互式模拟环境的技术演进之路
经验分享·笔记·python·开源·oneapi
西柚小萌新36 分钟前
【Python爬虫实战篇】--Selenium爬取Mysteel数据
开发语言·爬虫·python
努力写代码的熊大36 分钟前
c语言中文件操作详解
c语言·开发语言
QUST-Learn3D43 分钟前
高精度并行2D圆弧拟合(C++)
开发语言·c++
天才测试猿1 小时前
软件测试之功能测试详解
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·测试用例
项目題供诗1 小时前
Python类和对象二(十一)
python
肉肉不吃 肉1 小时前
ES6 模块化 与 CommonJS 的核心概念解析
开发语言·javascript·es6
明月醉窗台1 小时前
Qt 入门 6 之布局管理
c语言·开发语言·c++·qt