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

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

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

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);
}

猜你喜欢

转载自blog.csdn.net/Yang9325/article/details/129024239