qt 使用超级终端自定义打印格式
打印格式:
AppInit::start::[37]
AppInit - 类名
start - 类函数名
37 - 行号
//类名定义
#define __CLASS__ __class__
#define __class__ abi::__cxa_demangle(typeid(*this).name(), 0, 0, 0) //获取类名(必须在类内部调用,因为含有this指针)
//终端颜色宏定义
#define NONE "\033[0m"
#define RED "\033[0;32;31m"
#define LIGHT_RED "\033[1;31m"
#define GREEN "\033[0;32;32m"
#define LIGHT_GREEN "\033[1;32m"
#define BLUE "\033[0;32;34m"
#define LIGHT_BLUE "\033[1;34m"
#define DARY_GRAY "\033[1;30m"
#define CYAN "\033[0;36m"
#define LIGHT_CYAN "\033[1;36m"
#define PURPLE "\033[0;35m"
#define LIGHT_PURPLE "\033[1;35m"
#define BROWN "\033[0;33m"
#define YELLOW "\033[0;33m"
#define LIGHT_YELLOW "\033[1;33m"
#define LIGHT_GRAY "\033[1;37m"
#define WHITE "\033[0;37m"
#define LIGHT_WHITE "\033[1;37m"
//linux方式打印
#define LOG_INFO(...) do{printf(LIGHT_GREEN "%s::%s::[%d]: " NONE, __CLASS__, __FUNCTION__, __LINE__); printf(__VA_ARGS__);}while(0)
#define LOG_WARN(...) do{printf(LIGHT_YELLOW "%s::%s::[%d]: " NONE, __CLASS__, __FUNCTION__, __LINE__); printf(__VA_ARGS__);}while(0)
#define LOG_ERR(...) do{printf(LIGHT_RED "%s::%s::[%d]: " NONE, __CLASS__, __FUNCTION__, __LINE__); printf(__VA_ARGS__);}while(0)
//qDebug方式打印
#define QLOG_INFO qDebug().nospace()<<LIGHT_GREEN<<__CLASS__<<"::"<<__FUNCTION__<<"::["<<__LINE__<<"]"<<NONE<<": "
#define QLOG_WARN qDebug().nospace()<<LIGHT_YELLOW<<__CLASS__<<"::"<<__FUNCTION__<<"::["<<__LINE__<<"]"<<NONE<<": "
#define QLOG_EROR qDebug().nospace()<<LIGHT_RED<<__CLASS__<<"::"<<__FUNCTION__<<"::["<<__LINE__<<"]"<<NONE<<": "
其中
nospace为去除qDebug打印的中间空格部分
越努力,越幸运
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端