PyCharm中控制台输出日志分层级分颜色显示
原文: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中控制台输出日志分层级分颜色显示相关推荐
- spring boot:从零开始搭建一个项目 - day 4 控制台输出日志美化 + swagger2
spring boot:从零开始搭建一个项目 - day 4 控制台输出日志美化 + swagger2 一.logback.xml配置日志美化 二.集成swagger2 1.引入依赖 2.编写配置文件 ...
- 升级到log4j2之后在idea控制台输出日志中文乱码的解决方案
log4j升级到log4j2之后在idea编辑器的控制台输出日志中文乱码 问题概述: 项目组最近升级了日志系统,由log4j升级到了log4j2,在调试的过程中发现我用的idea编辑器的控制台输出中文 ...
- 1.21 几种在控制台输出日志的方式 [原创iOS开发-Xcode教程]
原文:http://coolketang.com/staticCoding/5a990cf4fe88c21c80b06faa.html 1. 双击打开之前创建的空白项目模板. 2. 然后打开视图控制器 ...
- ASP.NET Core 解决控制台输出日志内容前面[40m等乱码字符
在默认我写了一个 WPF 程序去做管理 ASP.NET Core 进程的日志的时候,重定向输出的内容里面每一行前面都添加了很多乱码字符串.其实这是 ASP.NET Core 控制台的颜色字符,解决方法 ...
- 在spark应用程序中设置输出日志的级别
spark运行的时候会产生大量的消息,让程序的运行结果看起来比较费劲 所以可以再程序中添加一些代码,设置一下输出日志的级别 1 import org.apache.log4j.{Level, Logg ...
- Tomcat 修改控制台输出日志级别
叙述 一般在部署Tomcat后,运行久了,catalina.out文件会越来越大,对系统的稳定造成了一定的影响.可通过修改conf/logging.properties日志配置文件来屏蔽掉这部分的日志 ...
- python中控制台输出的颜色方法
#格式: 设置颜色开始 :\033[显示方式;前景色;背景色m #说明: 前景色 背景色 颜色 --------------------------------------- 40 黑色 41 红色 ...
- springboot启动不打印日志信息_SpringBoot日志操作【全局异常捕获消息处理--日志控制台输出+日志文件记录】...
引言 看到一篇blog,感觉写的角度非常好,因此引用过来消化一番.
- idea控制台输出日志过多,修改log4j日志级别去掉没用的
打开log4j.properties文件,找到log4j.rootLogger,改为log4j.rootLogger = INFO, Console ,File 参考文章:https://blog.c ...
最新文章
- CSS之布局(行内元素的盒模型)
- python高效 二分法查找
- MySQL 避免行锁升级为表锁——使用高效的索引
- 数位dp从会打模板到不会打模板
- Java 并发编程之 ConcurrentHashMap,ConcurrentSkipListMap
- STM8学习笔记----普通IO口模拟串口功能
- bootstrap-自定义导航栏隐藏参数@screen-sm
- ZeroMQZeroMQ研究与应用分析
- codevs——2822 爱在心中
- Visual Studio Code快捷指令
- css加号图标_css样式画加号和减号(+和-)效果
- Python编写中国象棋棋盘(可视化页面)
- 最新IT段子手详解MyBatis遇到Spring 秒学Java SSM开发大众点评 难度中级
- Nginx系列教程(07) - Location正则表达式
- [someip专题]vsomeip使用以及代码解析1
- [胡搞]Deecamp 2019 第二次考试B卷笔试知识点回忆
- Git安装包(win版)
- matlab中S-function的概念及使用
- css学习笔记(字体属性)
- 2021年SEO战略权威指南
热门文章
- YUV420转YUV444 , YUV420转RGB
- mysql centos 源码安装_CentOS5下MySQL源码安装方式
- mockito_Mockito:为什么您仍然应该欣赏InjectMocks注释
- android view 源码分析,Android ViewPager源码详细分析
- 红5java_关于skywang123456之“红黑树(五)之 Java的实现”的改进与内容添加
- 每一个人都是平凡的英雄
- 推荐个Spring Boot实现的开源公众号管理系统,当学习案例也不错!
- 皮一皮:没有草原也敢买马?
- 皮一皮:这是传说盖浇饭中的天花板~白粥盖浇饭...
- 皮一皮:这才是「真 · 老司机」...