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打印的中间空格部分




posted @   蔡头一枚  阅读(70)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示