VS2022 spdlog报错:static_assert failed: ‘Unicode support requires compiling with /utf-8‘以及spdlog的使用及配置

1、打开属性界面

 找到C/C++里面的命令行,在下面其他选项中添加/utf-8 

确定 重新编译就好啦!!

但是在转换完以后,我原本的文字会变成乱码,转换了写法

 setWindowTitle(QString::fromLocal8Bit("计算器"));//修改之后
// setWindowTitle(QStringLiteral("计算器"));     //原来写法

使用:

在官网下载文件夹,解压到自己的路径

把 spdlog-1.x\spdlog-1.x\include\spdlog 路径拷贝到项目里面

然后在项目中添加现有文件把复制过来的.h文件添加进去

声明

#include <spdlog/spdlog.h>
#include <spdlog/sinks/basic_file_sink.h>

初始化

 auto logger = spdlog::basic_logger_mt("file_logger", "log.txt");
 spdlog::set_default_logger(logger);
 spdlog::set_level(spdlog::level::info); // 设置日志级别

会在你的解决方案下面建一个log.txt文件

在你想要输出日志的地方就可以按照如下格式写

// 使用日志(比如在某个操作中)
void MainWindow::on_buttonEqual_clicked() {
    QString result = ui->lineEdit->text();
    spdlog::info("用户点击了等号按钮,结果是: {}", result.toStdString());

如果你想指定生成日志路径可以在初始化添加如下

auto logger = spdlog::basic_logger_mt("file_logger", "C:/logs/myapp.log");

注意:如果想打印string类型要进行转换

 spdlog::info("点击了数字: {}", ui.line->text().toUtf8().constData());

结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值