【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")
相关推荐
赵优秀一一几秒前
SQLAlchemy学习记录
开发语言·数据库·python
m0_640309302 分钟前
如何在phpMyAdmin中生成XML格式导出_与其他企业系统的数据交互
jvm·数据库·python
无限进步_7 分钟前
【C++】寻找字符串中第一个只出现一次的字符
开发语言·c++·ide·windows·git·github·visual studio
2301_815279528 分钟前
JavaScript中快速清空数组的多种方式及其性能差异
jvm·数据库·python
孬甭_18 分钟前
字符函数及字符串函数
c语言·开发语言
捉鸭子24 分钟前
海关总署瑞数vmp算法还原
python·网络安全·node.js·网络爬虫
摇滚侠26 分钟前
Java 进阶教程,全面剖析 Java 多线程编程
java·开发语言
大佬,救命!!!29 分钟前
etp中未运行用例顺序的定位及补齐脚本自动化生成
python·学习笔记·excel·自动化脚本·用例整理清洗
KevinCyao33 分钟前
php彩信接口代码示例:PHP使用cURL调用彩信网关发送图文消息
android·开发语言·php
装疯迷窍_A37 分钟前
以举证方位线生成工具为例,分享如何在Arcgis中创建Python工具箱(含源码)
开发语言·python·arcgis·变更调查·举证照片