原文:https://blog.csdn.net/linzi1994/article/details/83009233

PyCharm中控制台输出日志分层级分颜色显示

版权声明:本文为博主原创文章,未经博主允许不得转载 https://blog.csdn.net/linzi1994/article/details/83009233

1.把下面代码复制到一个.py文件中

#!/usr/bin/env python
# encoding: utf-8
import logging# now we patch Python code to add color support to logging.StreamHandler
def add_coloring_to_emit_windows(fn):# add methods we need to the classdef _out_handle(self):import ctypesreturn ctypes.windll.kernel32.GetStdHandle(self.STD_OUTPUT_HANDLE)out_handle = property(_out_handle)def _set_color(self, code):import ctypes# Constants from the Windows APIself.STD_OUTPUT_HANDLE = -11hdl = ctypes.windll.kernel32.GetStdHandle(self.STD_OUTPUT_HANDLE)ctypes.windll.kernel32.SetConsoleTextAttribute(hdl, code)setattr(logging.StreamHandler, '_set_color', _set_color)def new(*args):FOREGROUND_BLUE = 0x0001  # text color contains blue.FOREGROUND_GREEN = 0x0002  # text color contains green.FOREGROUND_RED = 0x0004  # text color contains red.FOREGROUND_INTENSITY = 0x0008  # text color is intensified.FOREGROUND_WHITE = FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED# winbase.hSTD_INPUT_HANDLE = -10STD_OUTPUT_HANDLE = -11STD_ERROR_HANDLE = -12# wincon.hFOREGROUND_BLACK = 0x0000FOREGROUND_BLUE = 0x0001FOREGROUND_GREEN = 0x0002FOREGROUND_CYAN = 0x0003FOREGROUND_RED = 0x0004FOREGROUND_MAGENTA = 0x0005FOREGROUND_YELLOW = 0x0006FOREGROUND_GREY = 0x0007FOREGROUND_INTENSITY = 0x0008  # foreground color is intensified.BACKGROUND_BLACK = 0x0000BACKGROUND_BLUE = 0x0010BACKGROUND_GREEN = 0x0020BACKGROUND_CYAN = 0x0030BACKGROUND_RED = 0x0040BACKGROUND_MAGENTA = 0x0050BACKGROUND_YELLOW = 0x0060BACKGROUND_GREY = 0x0070BACKGROUND_INTENSITY = 0x0080  # background color is intensified.levelno = args[1].levelnoif (levelno >= 50):color = BACKGROUND_YELLOW | FOREGROUND_RED | FOREGROUND_INTENSITY | BACKGROUND_INTENSITYelif (levelno >= 40):color = FOREGROUND_RED | FOREGROUND_INTENSITYelif (levelno >= 30):color = FOREGROUND_YELLOW | FOREGROUND_INTENSITYelif (levelno >= 20):color = FOREGROUND_GREENelif (levelno >= 10):color = FOREGROUND_MAGENTAelse:color = FOREGROUND_WHITEargs[0]._set_color(color)ret = fn(*args)args[0]._set_color(FOREGROUND_WHITE)# print "after"return retreturn newdef add_coloring_to_emit_ansi(fn):# add methods we need to the classdef new(*args):levelno = args[1].levelnoif (levelno >= 50):color = '\x1b[31m'  # redelif (levelno >= 40):color = '\x1b[31m'  # redelif (levelno >= 30):color = '\x1b[33m'  # yellowelif (levelno >= 20):color = '\x1b[32m'  # greenelif (levelno >= 10):color = '\x1b[35m'  # pinkelse:color = '\x1b[0m'  # normaltry:args[1].msg = color + args[1].msg + '\x1b[0m'  # normalexcept Exception as e:pass# print "after"return fn(*args)return newimport platformif platform.system() == 'Windows':# Windows does not support ANSI escapes and we are using API calls to set the console colorlogging.StreamHandler.emit = add_coloring_to_emit_windows(logging.StreamHandler.emit)
else:# all non-Windows platforms are supporting ANSI escapes so we use themlogging.StreamHandler.emit = add_coloring_to_emit_ansi(logging.StreamHandler.emit)# log = logging.getLogger()# log.addFilter(log_filter())# //hdlr = logging.StreamHandler()# //hdlr.setFormatter(formatter())
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117

2.将文件放到项目的utils包中(或者项目其他路径)
3.在配置文件中导入这个py文件
比如在Django的setting.py文件中配置日志信息时,可以先导入这个文件
之后运行代码,控制台会根据日志等级显示不同的颜色
4.pycharm版本最好是17版本以上的

PyCharm中控制台输出日志分层级分颜色显示相关推荐

  1. spring boot:从零开始搭建一个项目 - day 4 控制台输出日志美化 + swagger2

    spring boot:从零开始搭建一个项目 - day 4 控制台输出日志美化 + swagger2 一.logback.xml配置日志美化 二.集成swagger2 1.引入依赖 2.编写配置文件 ...

  2. 升级到log4j2之后在idea控制台输出日志中文乱码的解决方案

    log4j升级到log4j2之后在idea编辑器的控制台输出日志中文乱码 问题概述: 项目组最近升级了日志系统,由log4j升级到了log4j2,在调试的过程中发现我用的idea编辑器的控制台输出中文 ...

  3. 1.21 几种在控制台输出日志的方式 [原创iOS开发-Xcode教程]

    原文:http://coolketang.com/staticCoding/5a990cf4fe88c21c80b06faa.html 1. 双击打开之前创建的空白项目模板. 2. 然后打开视图控制器 ...

  4. ASP.NET Core 解决控制台输出日志内容前面[40m等乱码字符

    在默认我写了一个 WPF 程序去做管理 ASP.NET Core 进程的日志的时候,重定向输出的内容里面每一行前面都添加了很多乱码字符串.其实这是 ASP.NET Core 控制台的颜色字符,解决方法 ...

  5. 在spark应用程序中设置输出日志的级别

    spark运行的时候会产生大量的消息,让程序的运行结果看起来比较费劲 所以可以再程序中添加一些代码,设置一下输出日志的级别 1 import org.apache.log4j.{Level, Logg ...

  6. Tomcat 修改控制台输出日志级别

    叙述 一般在部署Tomcat后,运行久了,catalina.out文件会越来越大,对系统的稳定造成了一定的影响.可通过修改conf/logging.properties日志配置文件来屏蔽掉这部分的日志 ...

  7. python中控制台输出的颜色方法

    #格式: 设置颜色开始 :\033[显示方式;前景色;背景色m #说明: 前景色 背景色 颜色 --------------------------------------- 40 黑色 41 红色 ...

  8. springboot启动不打印日志信息_SpringBoot日志操作【全局异常捕获消息处理--日志控制台输出+日志文件记录】...

    引言 看到一篇blog,感觉写的角度非常好,因此引用过来消化一番.

  9. idea控制台输出日志过多,修改log4j日志级别去掉没用的

    打开log4j.properties文件,找到log4j.rootLogger,改为log4j.rootLogger = INFO, Console ,File 参考文章:https://blog.c ...

最新文章

  1. CSS之布局(行内元素的盒模型)
  2. python高效 二分法查找
  3. MySQL 避免行锁升级为表锁——使用高效的索引
  4. 数位dp从会打模板到不会打模板
  5. Java 并发编程之 ConcurrentHashMap,ConcurrentSkipListMap
  6. STM8学习笔记----普通IO口模拟串口功能
  7. bootstrap-自定义导航栏隐藏参数@screen-sm
  8. ZeroMQZeroMQ研究与应用分析
  9. codevs——2822 爱在心中
  10. Visual Studio Code快捷指令
  11. css加号图标_css样式画加号和减号(+和-)效果
  12. Python编写中国象棋棋盘(可视化页面)
  13. 最新IT段子手详解MyBatis遇到Spring 秒学Java SSM开发大众点评 难度中级
  14. Nginx系列教程(07) - Location正则表达式
  15. [someip专题]vsomeip使用以及代码解析1
  16. [胡搞]Deecamp 2019 第二次考试B卷笔试知识点回忆
  17. Git安装包(win版)
  18. matlab中S-function的概念及使用
  19. css学习笔记(字体属性)
  20. 2021年SEO战略权威指南

热门文章

  1. YUV420转YUV444 , YUV420转RGB
  2. mysql centos 源码安装_CentOS5下MySQL源码安装方式
  3. mockito_Mockito:为什么您仍然应该欣赏InjectMocks注释
  4. android view 源码分析,Android ViewPager源码详细分析
  5. 红5java_关于skywang123456之“红黑树(五)之 Java的实现”的改进与内容添加
  6. 每一个人都是平凡的英雄
  7. 推荐个Spring Boot实现的开源公众号管理系统,当学习案例也不错!
  8. 皮一皮:没有草原也敢买马?
  9. 皮一皮:这是传说盖浇饭中的天花板~白粥盖浇饭...
  10. 皮一皮:这才是「真 · 老司机」...