C++打印控制台日志 不定参数和颜色定制

文章介绍了如何修改日志打印函数,使其能接受不定量不定类型的参数,并且可以根据日志级别改变输出文字颜色。利用WindowsAPI中的SetConsoleTextAttribute函数来设置控制台文本颜色,分别对应LOG_NORMAL、LOG_TIPS和LOG_ERR三种日志类型。
摘要由CSDN通过智能技术生成

平时调试的时候打印信息比较多,为了更好的区分“轻重缓急 ” 修改了打印日志的函数。

可以传入不定量不定类型的参数,也可以自定义输出的文字颜色,下面直接上代码。

Log(LOG_NORMAL, "========================================");
	Log(LOG_NORMAL, "========================================");
	Log(LOG_NORMAL, "========================================\n\n");
	Log(LOG_NORMAL, "测试输出颜色 :%d", LOG_NORMAL);
	Log(LOG_TIPS, "测试输出颜色 :%d", LOG_TIPS);
	Log(LOG_ERR, "测试输出颜色 :%d", LOG_ERR);
	
	Log(LOG_NORMAL, "========================================");
	Log(LOG_NORMAL, "========================================");
	Log(LOG_NORMAL, "========================================\n\n");

 

 

 

#pragma once
#include <windows.h>
#include<stdarg.h>
#include <stdio.h>
#include "stdafx.h"
using namespace std;

enum LOGTYPE
{
	LOG_NORMAL, LOG_TIPS, LOG_ERR
};

/* color
0 = 黑色 8 = 灰色
1 = 蓝色 9 = 淡蓝色
2 = 绿色 10 = 淡绿色
3 = 浅绿色 11 = 淡浅绿色
4 = 红色 12 = 淡红色
5 = 紫色 13 = 淡紫色
6 = 黄色 14 = 淡黄色
7 = 白色 15 = 亮白色
*/

static void Log(LOGTYPE nType, const char* format,...)
{
	WORD color = 7;
	switch (nType)
	{
	case LOG_NORMAL: color = 0; break;
	case LOG_TIPS: color = 3; break;
	case LOG_ERR: color = 4; break;
	}
	HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
	SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | color);
	
	
	
	char buf[1024];
	va_list ap;
	va_start(ap, format);
	vsprintf(buf, format, ap);
	cout << "[TIPS]" << (buf) << "\n";

	SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | 7);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猫叔大鸭梨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值