python logging日志根据等级适配颜色

2023-10-27

安装模块:pip install colorlog

代码参考如下:设置下formatter即可

import logging
from colorlog import ColoredFormatter


formatter = ColoredFormatter(
    # log_color设置颜色,如果使用reset,则后续颜色不改变,可使用第八行配置运行下看下效果
    "%(log_color)s%(levelname)s %(asctime)s %(module)s:%(lineno)d %(message)s",
    # "%(log_color)s%(levelname)-8s%(reset)s %(log_color)s%(message)s",
    datefmt=None,
    reset=True,
    #设置不同等级颜色
    log_colors={
        'DEBUG':    'fg_thin_cyan',
        'INFO':     'thin_green',
        'WARNING':  'yellow',
        'ERROR':    'red',
        'CRITICAL': 'red',
    },
    secondary_log_colors={},
    style='%'
)

handler = logging.StreamHandler()
handler.setFormatter(formatter)

logger=logging.getLogger('test')
logger.setLevel(logging.DEBUG)
logger.addHandler(handler)

logger.debug('debug')
logger.info('info')
logger.warning('waring')
logger.error('error')
logger.critical('critical')

dictconfig配置参考如下:

import os
import time
import logging
from logging import config
from logging import Filter

# 日志配置
LOGGING = {
    # 使用的python内置的logging模块,那么python可能会对它进行升级,所以需要写一个版本号,目前就是1版本
    'version': 1,
    # 是否去掉目前项目中其他地方中以及使用的日志功能,但是将来我们可能会引入第三方的模块,里面可能内置了日志功能,所以尽量不要关闭,肯定False
    'disable_existing_loggers': False,
    # 日志的处理格式
    'formatters': {
        # 详细格式,往往用于记录日志到文件/其他第三方存储设备
        'verbose': {
            # levelname等级,asctime记录时间,module表示日志发生的文件名称,lineno行号,message错误信息
            'format': '{levelname} {asctime} {module}:{lineno:d} {message}',
            # 日志格式中的,变量分隔符
            'style': '{',
        },
        'simple': {  # 简单格式,往往用于终端
            'format': '{levelname} {module}:{lineno} {message}',
            'style': '{',
        },
        'colored': {
            '()': 'colorlog.ColoredFormatter',
            'format': "%(log_color)s%(levelname)s %(message)s",
            'log_colors':{
                'DEBUG':    'cyan',
                'INFO':     'green',
                'WARNING':  'yellow',
                'ERROR':    'red',
                'CRITICAL': 'red,bg_white',
            },
        }
    },
    'filters': { # 日志的过滤设置,可以对日志进行输出时的过滤用的
        # 在debug=True下产生的一些日志信息,要不要记录日志,需要的话就在handlers中加上这个过滤器,不需要就不加
        'require_debug_true': {
            '()': Filter,
        },
    },
    'handlers': {  # 日志的处理方式
        'console': {  # 终端下显示
            'level': 'DEBUG',  # 日志的最低等级
            'filters': ['require_debug_true'],
            'class': 'logging.StreamHandler', # 处理日志的核心类
            'formatter': 'simple'
        },
        'color':{  # 终端下显示
            'level': 'DEBUG',  # 日志的最低等级
            'filters': ['require_debug_true'],
            'class': 'logging.StreamHandler', # 处理日志的核心类
            'formatter': 'colored'
        },
        'file': {  # 文件中记录日志
            'level': 'INFO',
            'class': 'logging.handlers.TimedRotatingFileHandler',
            # 日志位置,日志文件名,日志保存目录必须手动创建
            'filename': os.path.join(os.path.abspath(os.path.dirname(__file__)),time.strftime("%Y-%m-%d", time.gmtime()) + '.log'),
            # 备份日志文件的数量,设置最大日志数量为10
            'backupCount': 10,
            # 日志格式:详细格式
            'formatter': 'verbose',
            # 设置默认编码,否则打印出来汉字乱码
            'encoding': 'utf-8',
            'when':'midnight'
        },
    },
    # 日志实例对象
    'loggers': {
        'chunda': {
            'handlers': ['color', 'file'],
            'propagate': True,  # 是否让日志信息继续冒泡给其他的日志处理系统
            'level': 'DEBUG'
        }
    }
}

config.dictConfig(LOGGING)

logger=logging.getLogger('chunda')

logger.info('info')
logger.debug('debug')
logger.warning('warning')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python logging日志根据等级适配颜色 的相关文章

随机推荐

  • git clone下载代码,中途断掉怎么办?

    问题如下 解决办法 1 运行以下命令进行clone git clone recursive https xxxxxx 2 进入项目根目录 继续下载 cd eigen git mirror git submodule update init
  • pycharm.2023.1配置python解释器时找不到conda环境

    问题 在配置python解释器时 添加conda环境 但无法识别Anaconda路径下的python exe或 conda exe 解决办法 打开Anaconda目录下的condabin文件夹 里面有个conda bat 选择后 点击 加载
  • java连接Oracle和PostGreSQL

    1 查看orcale版本 方法一 登录时会显示版本号 oracle ogg1 sqlplus as sysdba SQL Plus Release 11 2 0 3 0 Production on 骀涓 7 20 17 51 14 2015
  • 百万前端之JavaScript+jquery实现点赞、收藏、评论功能

    点赞收藏的原理都是一样 通过点击切换文字和图片实现动态点赞收藏功能 图标来源 阿里图标库 评论功能原理也很简单 在页面中写好评论css样式 再通过js生成div节点 再嵌套内容 用最原始的方法 解决最常见的问题 简单易懂 需要引入jquer
  • 系统重装系列(二)

    系统重装系列 二 上期回顾 系统重装系列 一 打酱油的杯具的博客 CSDN博客 分区 如果你对与当前的磁盘分区情况并不满意 你可以选择在重装完成后使用系统内置的工具进行分区操作 当然使用微pe等方式在重装前提前进行格式化并完成分区也可 如果
  • 聚观早报

    科技巨头组建元宇宙组织 苹果缺席 Meta 微软和其他争相建设建设元宇宙概念的科技巨头组建了一个组织来制定行业标准 以期让这些公司的数字世界能够相互兼容 组织名为元宇宙标准论坛 Metaverse Standards Forum 在当地时间
  • Gitlab汉化

    1 停止gitlab服务 gitlab的汉化 对于英文还过得去的同学 可以不用汉化 关闭gitlab gitlab ctl stop 2 下载汉化安装包 下载汉化包 下载最新的汉化包 并查看版本 汉化包版本要与gitlab ce包版本一致
  • 随笔之-UML转载总结

    感谢 https www cnblogs com owenzh p 11206335 html 聚合 班级由学生组成 强依赖的特殊聚合关系 如果总体不在了则部分也不存在了 上图表示含义 如果班级不存在了 则学生也不存在了 组合 小汽车由 轮
  • 3.5mm 音频接口类型说明(3极和4极)耳机接口

    3 5mm 音频接口类型说明 背景描述 有的时候我们将非原配的耳机插入手机或电脑 发现音质非常差或只有某部分音频 大多是因为耳机与设备的音频接口类型不同导致的 接口类型 现在常见的耳机接口都是 3 5mm 音频接口 分为 3 pole 3节
  • js如何实现简繁体互转

    js如何实现简繁体互转 一 总结 一句话总结 其实无论是简体还是繁体 都是在显示端 前端 其实所有的我只用动js就好了 没必要动php 当然 后端也可以做前端的事情 只是麻烦了点 要多通信两次 第一次把信息传到后端 第二次把后端的信息传回来
  • 找不到vcruntime140.dll,无法继续执行代码,请重新安装程序

    最近在使用photoshop软件的时候 我遇到了一个问题 即vcruntime140 dll文件的缺失 这个问题让我无法启动软件 导致我感到非常困扰 然而 在修复这个问题的过程中 我学到了一些有关动态链接库和修复技术的知识 也对问题解决过程
  • 华为od机考题目-二叉树按照中序遍历输出

    输入描述 由大小写字母 左右大括号 逗号组成的字符串 字母戴白哦一个节点值 左右括号内包含该节点 的子节点 class Node 树节点 对树结构体不了解的 可看 二叉树相关算法 https pycoder blog csdn net ar
  • TF-IDF 算法 以及 Elasticsearch中的打分

    在 elasticsearch中进行搜索的时候 会对匹配到的数据进行打分 并且按照分数进行排序 在这个打分过程中 就运用到了TF IDF算法 TF 即词频 也就是某个词在整个文档中出现的次数越高 他的评分就越高 TF 某个词出现的次数 整个
  • Base64原理和实现

    Base64 概念 Base64已经成为网络上常见的传输8bit字节的编码方式之一 一般在做数据的传输时 系统之间的报文交互都需要使用Base64对明文进行编码 然后再进行加密 最后才传输 那么Base64的作用是什么 在数据传输时经常遇到
  • SpareNet运行、学习、debug(未完持续更新中)

    悲伤的毕业设计 这是一个关于 身为小白的我 要配置一堆环境 并且要和版本号斗智斗勇 努力跑个结果的故事 运行前 bug0 遇到了can t load pcd文件的问题 后来发现是我忘了解压文件 遇到了python命令augment不对的问题
  • 数据里面的poi指的什么_如何通过短视频POI功能,获取无数流量

    什么是POI POI功能可以让企业获得独家专享的唯一地址 呈现方式就是抖音视频中的定位图标 点击图标进去 用户可以看到定位这一地址中的全部视频内容 企业通过POI页面可以向用户推荐商品 优惠券 店铺活动等 POI可以让企业和用户之间产生一个
  • 围棋人机大战属于计算机在什么方面的应用,《信息技术基础》第一章复习题库...

    第12题 智能手机 数码相机 MP3播放器等产品中一般都含有嵌入式计算机 答案 Y 第13题 现代遥感遥测技术进步很快 其功能往往远超过人的感觉器官 答案 Y 第14题 集成电路的工作速度主要取决于组成逻辑门电路的晶体管的尺寸 尺寸越小 速
  • ConcurrentHashMap在jdk1.7和jdk1.8中的不同;

    原博客 https www cnblogs com lujiango p 7580558 html http www importnew com 28263 html CouncurrentHashMap 线程安全 一 Councurren
  • Python蒙特卡洛相关变量SciPy模拟

    SciPy 的概率分布和分布拟合 简述 概率分布对随机过程进行建模并将其拟合到观测数据 SciPy 的概率分布 它们的属性和方法 通过拟合 Weibull 极值分布来模拟组件寿命的示例 一个自动化的拟合程序 从大约 60 个候选分布中选择最
  • python logging日志根据等级适配颜色

    安装模块 pip install colorlog 代码参考如下 设置下formatter即可 import logging from colorlog import ColoredFormatter formatter ColoredFo