You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Qt Creator中Application Output无法显示spdlog彩色日志的解决咨询

解决Qt Creator Application Output中SpdLog日志无颜色问题

方案一:开启Qt Creator的ANSI颜色解析支持

这是最直接的解决方案,Qt Creator本身支持解析ANSI颜色转义序列,仅需开启对应设置:

  1. 打开Qt Creator,点击顶部菜单栏的Tools -> Options
  2. 在左侧导航栏选择Environment -> General
  3. 找到Application Output区域,勾选Enable ANSI color codes选项
  4. 重启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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 17:44:58