让控制台输出彩色日志 windows

2023-11-20

        经常看到一些开源软件(例如NDK编译的时候,操作系统启动的时候)打印的输出很多是彩色的,这样比较容易分辨哪些是重点,增强可读性。代码如下:

[cpp]  view plain  copy
  1. #include <stdio.h>  
  2. #include <windows.h>  
  3.   
  4. #define LOG_TYPE_NORMAL 0  
  5. #define LOG_TYPE_WARNING 1  
  6. #define LOG_TYPE_ERROR 2  
  7.   
  8. void LOG(int iLogType, char* szFmt, ...)  
  9. {  
  10.     va_list                     argPtr;  
  11.     char                        szOut[1024*2];  
  12.     DWORD                       dwWs;  
  13.     HANDLE                      hConsoleOutput;  
  14.     CONSOLE_SCREEN_BUFFER_INFO  screenBufferInfo;  
  15.     WORD                        wAttributes;  
  16.       
  17.     hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);  
  18.     GetConsoleScreenBufferInfo(hConsoleOutput, &screenBufferInfo);  
  19.   
  20.     switch( iLogType )  
  21.     {  
  22.     case LOG_TYPE_NORMAL:       // 一般信息  
  23.         wAttributes = FOREGROUND_GREEN | FOREGROUND_INTENSITY;  
  24.         break;  
  25.     case LOG_TYPE_WARNING:      // 警告信息,黄色  
  26.         wAttributes = FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY;  
  27.         break;  
  28.     case LOG_TYPE_ERROR:        // 错误信息,红色  
  29.         wAttributes = FOREGROUND_RED|FOREGROUND_INTENSITY;  
  30.         break;  
  31.     default:  
  32.         wAttributes = screenBufferInfo.wAttributes;  
  33.     }  
  34.       
  35.     va_start(argPtr, szFmt);  
  36.     vsprintf(szOut, szFmt, argPtr);  
  37.     va_end(argPtr);  
  38.   
  39.     SetConsoleTextAttribute(hConsoleOutput, wAttributes);  
  40.     WriteConsole(GetStdHandle(STD_OUTPUT_HANDLE), szOut, strlen(szOut), &dwWs, NULL);  
  41.     SetConsoleTextAttribute(hConsoleOutput, screenBufferInfo.wAttributes);  
  42. }  
  43.   
  44. void main()  
  45. {  
  46.     char *normal = "hello";  
  47.     int warning = 10;  
  48.     unsigned error = 0x80001000;  
  49.   
  50.     LOG(LOG_TYPE_NORMAL,"%s\n",normal);  
  51.     LOG(LOG_TYPE_WARNING,"%x\n",warning);  
  52.     LOG(LOG_TYPE_ERROR,"%u\n",error);  
  53. }  
        其中黄色的宏是根据光学三原色的红色和绿色或出来的。除了前景颜色,还可以设置背景颜色,具体跟到FORGROUND_RED的定义就可以看到其他类似的参数了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

让控制台输出彩色日志 windows 的相关文章

  • 【MySQL】MySQL进阶之路(六)MySQL三大日志(binlog、redo log和undo log)详解

    写在前面的话 脑子是个好东西 xff0c 可惜的是一直没有搞懂脑子的内存删除机制是什么 xff0c 所以啊 xff0c 入行多年 xff0c 零零散散的文章看了无数 xff0c 却总是学习了很多也忘了很多 痛定思痛的我决定从今天开始系统的梳
  • android 抓完整的log的方式(包括logcat抓所有非内核log)

    log 分为 kernel main events radio 几种log kernel属于 linux内核的log xff0c 通过读取 proc kmsg 或者通过串口来抓取 USB连接手机抓取方式 xff1a adb shell ca
  • 在Ubuntu中,使用minicom抓串口log

    xff08 1 xff09 先插上串口线 xff0c 连上设备 xff08 2 xff09 确定连的是哪个串口 ls dev tty 如果是串口转USB xff0c 然后连到主机上 xff0c 则为 dev ttyUSB 如果是直接串口连到
  • nginx access.log 忽略favicon.ico访问记录的方法

    favicon ico 文件是浏览器收藏网址时显示的图标 xff0c 当第一次访问页面时 xff0c 浏览器会自动发起请求获取页面的favicon ico文件 当 favicon ico文件不存在时 xff0c 服务器会记录404日志 12
  • 用QXDM获取log的方法说明

    用 QXDM 获取 log 的方法说明 对于获取 LOG 可能我们会有一些误解 测试人员害怕得到的 LOG 信息不全 而将所有的选项都选上 希望能够得到最全的 LOG 其实不然 受到手机及手机与 PC 的通讯限制 如果选择保存所有的 LOG
  • GNURadio中运行ofdm_rx报错:gr::log :INFO: packet_headerparser_b0 - Detected an invalid packet at item ××

    修改方法 xff1a 减小发送端的乘数因子 但是本着知其然还要知其所以然的学习态度 xff0c 下面就解释下出现这种现象的原因 xff1a 2021 10 28 更新 xff1a 在实际的测试中发现 xff0c 引起该问题的原因还有可能是接
  • log以2为底的对数

  • Eclipse打不开,提示查看Log文件

    今天在使用Eclipse的时候 xff0c Eclipse整个黑屏 xff0c 然后果断启动任务管理器 xff0c 关掉了Eclipse然后重启 xff0c 发现Eclipse打不开了 xff0c 然后提示查看log文件 xff0c 然后解
  • 一个小巧的C++Log输出到文件类

    一个小巧的C 43 43 Log输出到文件类 xff08 转 xff09 作者 xff1a wangyin159 http www cnblogs com mazhenyu p 4139352 html 一个小巧的C 43 43 Log输出
  • Ardupilot添加自定义日志(AP_LOG)

    1 在libraries AP Logger LogStructure h中添加自定义的结构体 span class token keyword struct span span class token class name PACKED
  • 各种log的加载过程

    1 概述 现在的log框架越来越多 目前我们系统用有使用的包括commons logging log4j slf4j 还有 一个号称更快的logback暂时基本没有用到 而这些log系统又常常依赖于一些jar包顺序和静态配置 导致比较混乱
  • Git 版本回退与前进(03)

    现在 你已经学会了修改文件 然后把修改提交到Git版本库 现在 再练习一次 修改readme txt文件如下 Git is a distributed version control system Git is free software
  • idea 运行日志查看

    help gt Show Log in Explorer 打开后的文件夹 如果有一些运行错误提示导入至中查看的可以在这里找到 比如在idea执行maven的reimport入时报错 打开后会有对应的记录 日志是按时间顺序追加的 可以直接最下
  • 【Log日志】springboot项目中集成Log日志详解

    springboot项目中集成Log日志详解 一 Log日志介绍 1 Log 日志组件主要作用及用途 2 日志的级别Level 级别控制 3 日志的输出Import 3 1 快速使用 3 2 日志文件输出 3 3 自定义配置 4 Sprin
  • vs查看宏展开

    宏在我们的代码中能经常给我们带来很大的便利 但是有些宏会造成意向不到的错误 能够查看宏展开就能够查看宏错误的根源 VS2008对编译是不保存预处理的文件信息的 而宏展开的信息就是在预编译阶段 如下图 工程属性 配置属性 c c 预处理器 生
  • springboot 注解实现AOP记录日志

    AOP AOP为Aspect Oriented Programming的缩写 意为 面向切面编程 通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术 在日常开发当中经常用来记录日志 方法跟踪 事务 权限等 切面方法说明 Aspe
  • c#中日志NLog配置问题

    Failed obtaining configuration for Common Logging from configuration section common logging 在配置中没有配置对 另外很有可能是NLog 的配置文件没
  • 解决Eclipse,MyEclipse出现An error has occurred,See error log for more details的错误

    src http blog sina com cn s blog 4ba5b45e0102eam8 html 现把找到的解决方法整理提供给大家 如下 方法1 在 开始 gt 运行 gt 打入 cmd 进入命令提示行后 再进入eclipse的
  • Springboot使用slf4j记录日志

    前言 在项目开发中 记录日志是必做的一件事情 而当我们使用Springboot框架时 记录日志就变得极其简单了 springboot内置了slf4j日志框架 我们只需要添加依赖 做一些简单的配置就ok了 下面 我们就来看看在Springbo
  • 让控制台输出彩色日志 windows

    经常看到一些开源软件 例如NDK编译的时候 操作系统启动的时候 打印的输出很多是彩色的 这样比较容易分辨哪些是重点 增强可读性 代码如下 cpp view plain copy include

随机推荐

  • (十)老照片修复、图像超分、图片提高分辨率、图片高清化、图片清晰化、黑白图片上色、人脸祛斑、美颜、人体瘦身、图像去噪、人像抠图、批量处理、视频提高分辨率、视频逐帧修复

    十 老照片修复 图像超分 图片提高分辨率 图片高清化 图片清晰化 黑白图片上色 人脸祛斑 美颜 人体瘦身 图像去噪 人像抠图 批量处理 视频提高分辨率 视频逐帧修复 本文的代码的功能是 可以对图片文件 视频批量增强清晰度 对老照片进行修复
  • NO.6——Unity3D中两种绘制小地图的方法

    在玩游戏时 你经常会发现 在游戏窗口的右上角或者左下角通常会有一个小地图 里边实时反馈角色的移动信息甚至是世界地图 那么这个小地图是如何绘制的呢 我目前掌握了两种方法 一种是以GUI方法重新绘制一个小窗口 另一种是新建一个正交投影的摄像机机
  • 2023华为OD机试真题 C++ 实现【寻找最大价值的矿堆/深度优先搜索】

    题目 我们规定 0表示空地 1表示银矿 2表示金矿 矿堆表示由相邻的金矿或银矿连接形成的地图 银矿价值是1 金矿价值是2 你的目标是找出地图中最大价值的矿堆 并且输出该矿堆的价值 示例1 输入 22220 00000 00000 01111
  • Java-Springboot整合支付宝接口

    文章目录 一 创建支付宝沙箱 二 使用内网穿透 nat app 三 编写java程序 四 访问 一 创建支付宝沙箱 跳转 支付宝沙箱平台 1 进入控制台 2 创建小程序 编写名称和绑定商家即可 3 返回第一个页面 往下滑进入沙箱 4 进行相
  • Matlab两种求相位的方法

    在matlab中有两种求相位方法 1 使用phase函数 比如a 1 j 2 phase a 则可以就a的相位 这个函数取实部为x轴 虚部为y轴 2 使用函数atan2 atan2 y x 注意y轴的数是放在前面的 atan2 2 1 和刚
  • C++入门教程(一)

    目录 一 初识C 2 程序结构 二 顺序结构程序设计 1 头文件 1 1 iostream 1 2 cstdio 1 3 cmath 2 名称空间 3 输入和输出 3 1输入 3 2输出 3 3各种输入输出优点缺点比较 4 变量 4 1赋值
  • 【人工智能】—_贝叶斯网络、概率图模型、全局语义、因果链、朴素贝叶斯模型、枚举推理、变量消元

    文章目录 频率学派 vs 贝叶斯学派 贝叶斯学派 Probability 概率 独立性 条件独立性 Probability Theory 概率论 Graphical models 概率图模型 什么是图模型 Graphical Models
  • pytorch1.4+tensorboard不显示graph计算图的问题

    电脑安装的pytoch版本为1 4 tensorboard无法显示计算图graph 但可以显示scalar 经过多方查证为pytorch版本问题 目前graph显示仅支持到pytorch1 3 处理如下 1 卸载当前的pytorch并安装低
  • springboot中用undertow踩坑记

    场景 准备基于springboot的静态资源实现mp4资源的播放 不同版本的springboot下效果不一样 可能导致正常的资源不可用 本文测试了几个版本 也针对这种情况提出了解决建议 希望对你的工作有所帮助 众所周知 springboot
  • 简单的方法解决ORA-07104:字符串文字太长

    工作中 保存数据的时候出现该问题 说字符串问题过长 过长的字段是一个用来保存xml格式的字符串 字段类型已经设置成CLOB 但是还是出现字符串过长问题 在SQLServer应该不会出现该问题 该问题中字符串文字太长 并不是字段的字符串过长
  • React配置@src根路径

    第一种 直接修改node modules包中的webpack config js文件 找到node modules react scripts config webpack config js文件 修改其中alias中的配置 添加 src
  • zotero和obsidian图片无法显示问题(可能的解决思路之一)(bibnotes formatter配置)

    我的zotero图片笔记无法导入obsidian 看了目前的大部分博主的内容 都是教你将bibnotes formatter中 image import下的zotero local folder路径改为storage前的路径 例如 我的位置
  • SSL踩坑ERR_SSL_VERSION_OR_CIPHER_MISMATCH

    最近公司项目开发了一个微信小程序 并且部署测试OK 由于微信小程序调用的后端接口必须是HTTPS 所以给接口安装了SSL 第一天测试都正常 第二天早上再使用时页面无响应 抓包发现是后端接口抛出 net ERR SSL VERSION OR
  • 背包九讲-01背包

    动态规划核心思维能力 动态规划是求最优解问题的重要解法 也是信息学奥赛中每年必考的内容之一 学习动态规划更应该注重此类问题思维能力的锻炼 多多做题 一般 gt 50题后方可入门 注意理解以下概念 1 状态 2 状态属性 3 状态的计算 也就
  • Microsoft Office Excel 不能访问文件 的解决办法

    Microsoft Office Excel 不能访问文件 a xls 可能的原因有 文件名称或路径不存在 文件正被其他程序使用 您正要保存的工作簿与当前打开的工作簿同名 This solution is Windows 2008 Serv
  • 三维实时重建BundleFusion

    转自 计算机视觉方向简介 深度相机室内实时稠密三维重建 知乎 室内场景的稠密三维重建目前是一个非常热的研究领域 其目的是使用消费级相机 本文特指深度相机 对室内场景进行扫描 自动生成一个精确完整的三维模型 这里所说的室内可以是一个区域 一个
  • 前端基础(三)- ES7~ES12

    为了方便记忆和称呼 ES2015之后的新知识点我们都统称ES6语法 就没必要去划分得那么细 ES7 2016 Array prototype includes includes方法可以判断一个数组是否包含某个指定的值 如果存在返回true
  • 多分类学习、多标签学习、多任务学习的区别

    Multi class Multi label Multi task 三者之间的区别与相同之处 1 直观解释 多分类学习 Multi class 一个分类器 但分的类别是包含多个的 例如 分类器判断苹果的颜色是 红色 黄色 青色 白色 这是
  • 移动端H5开发遇到的问题

    移动端开发必会出现的问题和解决方案 H5开发过程中难免会遇到一些兼容性等爬过坑的问题 移动端 H5 相关问题汇总 1px 问题 响应式布局 iOS 滑动不流畅 iOS 上拉边界下拉出现白色空白 页面件放大或缩小不确定性行为 click 点击
  • 让控制台输出彩色日志 windows

    经常看到一些开源软件 例如NDK编译的时候 操作系统启动的时候 打印的输出很多是彩色的 这样比较容易分辨哪些是重点 增强可读性 代码如下 cpp view plain copy include