Qt Creator中Application Output无法显示spdlog彩色日志的解决咨询
解决Qt Creator Application Output中SpdLog日志无颜色问题
方案一:开启Qt Creator的ANSI颜色解析支持
这是最直接的解决方案,Qt Creator本身支持解析ANSI颜色转义序列,仅需开启对应设置:
- 打开Qt Creator,点击顶部菜单栏的
Tools->Options - 在左侧导航栏选择
Environment->General - 找到
Application Output区域,勾选Enable ANSI color codes选项 - 重启Qt Creator后重新运行程序,日志颜色即可正常显示
方案二:强制SpdLog输出ANSI颜色并兼容Qt Creator环境
若上述设置不生效,或你的Qt Creator版本较旧不支持该选项,可修改SpdLog初始化代码,强制启用颜色输出:
#include "spdlog/spdlog.h" #include "spdlog/sinks/ansicolor_stdout_sink.h" void init_logger() { // 创建带颜色的标准输出sink auto sink = std::make_shared<spdlog::sinks::ansicolor_stdout_sink_mt>(); // 强制启用颜色,忽略终端类型检测(适配Qt Creator的非终端输出) sink->set_color_mode(spdlog::color_mode::always); // 初始化logger并配置参数 auto logger = std::make_shared<spdlog::logger>("main", sink); logger->set_level(spdlog::level::trace); // 保留带颜色标记的日志格式 logger->set_pattern("%^[%Y-%m-%d %H:%M:%S.%e] [%l] %v%$"); spdlog::set_default_logger(logger); }
核心是set_color_mode(spdlog::color_mode::always),强制SpdLog始终输出ANSI颜色转义序列,避免因Qt Creator的输出环境被误判为不支持颜色而禁用着色。
内容的提问来源于stack exchange,提问作者AllDay
相关产品推荐
相关产品推荐

