windows控制台中使用不同颜色显示不同类型的日志
2010-12-27 16:34
561 查看
主要是使用函数”SetConsoleTextAttribute“来实现不同类型的日志,采用不同的颜色来打印日志内容。
该函数对调用之后日志有效。
HANDLE hConsoleOutput -- 输出窗口句柄
WORD wAttributes -- 属性设置 可通过逻辑或运算符(|)连接各个属性分量
++++++++++++++++++++++
FOREGROUND_BLUE 文字蓝色
FOREGROUND_GREEN 文字绿色
FOREGROUND_RED 文字红色
FOREGROUND_INTENSITY 加亮文字颜色(提高亮度)
BACKGROUND_BLUE 背景蓝色
BACKGROUND_GREEN 背景绿色
BACKGROUND_RED 背景红色
BACKGROUND_INTENSITY 加亮背景颜色(提高亮度)
COMMON_LVB_GRID_HORIZONTAL 为打印文字添加上划线
COMMON_LVB_UNDERSCORE 为打印文字添加下划线
通过组合这些属性可以产生不同的颜色(加法三原色原理)
如:FOREGROUND_INTENSITY | FOREGROUND_GREEN | FOREGROUND_BLUE 青色加亮
(1)加法三原色
(2)前景色(FOREGROUND)和背景色(BACKGROUND)
前景色:画笔的颜色,这儿指文字的颜色。
背景色:画布的颜色,这儿指控制台背景的颜色。
控制台打印日志示例code:
BOOL SetConsoleTextAttribute( HANDLE hConsoleOutput, // handle to console screen buffer
WORD wAttributes // text and background colors);
该函数对调用之后日志有效。
HANDLE hConsoleOutput -- 输出窗口句柄
WORD wAttributes -- 属性设置 可通过逻辑或运算符(|)连接各个属性分量
++++++++++++++++++++++
FOREGROUND_BLUE 文字蓝色
FOREGROUND_GREEN 文字绿色
FOREGROUND_RED 文字红色
FOREGROUND_INTENSITY 加亮文字颜色(提高亮度)
BACKGROUND_BLUE 背景蓝色
BACKGROUND_GREEN 背景绿色
BACKGROUND_RED 背景红色
BACKGROUND_INTENSITY 加亮背景颜色(提高亮度)
COMMON_LVB_GRID_HORIZONTAL 为打印文字添加上划线
COMMON_LVB_UNDERSCORE 为打印文字添加下划线
通过组合这些属性可以产生不同的颜色(加法三原色原理)
如:FOREGROUND_INTENSITY | FOREGROUND_GREEN | FOREGROUND_BLUE 青色加亮
(1)加法三原色
(2)前景色(FOREGROUND)和背景色(BACKGROUND)
前景色:画笔的颜色,这儿指文字的颜色。
背景色:画布的颜色,这儿指控制台背景的颜色。
控制台打印日志示例code:
#pragma once typedef enum errorLev { TRACE_LEV = 0, INFO_LEV, WARNNING_LEV, ERROR_LEV, FAULT_LEV }errorLev; const char* err_headers[] = { "TRACE: ", "INFO: ", "WARNNING: ", "ERROR: ", "FAULT: " }; void println(const char* msg, errorLev err_lev=ERROR_LEV) { intptr_t handle= (intptr_t)GetStdHandle(STD_OUTPUT_HANDLE); switch (err_lev) { case TRACE_LEV: // 文字绿色 SetConsoleTextAttribute((HANDLE)handle, FOREGROUND_GREEN); break; case INFO_LEV: // 文字青色 SetConsoleTextAttribute((HANDLE)handle, FOREGROUND_GREEN | FOREGROUND_BLUE); break; case WARNNING_LEV: // 文字黄色 SetConsoleTextAttribute((HANDLE)handle, FOREGROUND_RED | FOREGROUND_GREEN); break; case ERROR_LEV: // 文字品红色 SetConsoleTextAttribute((HANDLE)handle, FOREGROUND_RED | FOREGROUND_BLUE); break; case FAULT_LEV: // 文字红色 SetConsoleTextAttribute((HANDLE)handle, FOREGROUND_RED); break; default: // 文字白色 SetConsoleTextAttribute((HANDLE)handle, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); break; } printf("%s%s\n", err_headers[err_lev], msg); }
相关文章推荐
- putty使用技巧-不同颜色显示不同类型的文件
- Android使用Tint,只用一张图片显示不同状态下的颜色
- 设置label上文字显示不同大小、颜色、字体类型
- 通过style来控制隔行显示不同颜色 .
- iOS 开发~设置label上文字显示不同大小、颜色、字体类型
- mac下Terminal中不同文件类型不同颜色显示
- UILabletext去掉乱码 控制颜色 行高 自定义大小 。显示不同的字体颜色、字体大小、行间距、首行缩进、下划线等属性(NSMutableAttributedString)
- 使用TextKit自定义UILabel,使用正则匹配链接(不同颜色显示)等,提高Label性能(Xcode 8.2.1 (8C1002) swift3最新语法)
- cygwin 的不同文件类型显示不同的颜色
- mac term分颜色显示不同类型文件
- 通过style来控制隔行显示不同颜色
- Android中可以使用System.out.println(“”);在控制台中显示你想要显示的字符吗?
- Eclipse控制台log4j日志级不同颜色显示
- 在使用Repeater、DataList 或 DataGrid 的模板列表时,根据不同状态,显示不同颜色
- Mac终端ls显示不同文件类型的颜色
- python 在控制台中用不同颜色打印信息
- 应用键横竖屏切换;label中显示图片;不同类型设备适配的代码;UIWebView字体大小、字体颜色、背景色的设置;
- mac在终端(Terminal)中用颜色显示不同类型文件
- 日历控件Calendar使用技巧--根据数据库数据控制日期背景显示颜色
- Kinect For Windows V2开发日志四:使用OpenCV显示深度图像