您的位置:首页 > 新闻 > 会展 > 安阳吧贴吧_logo设计公司标志_微商怎样让客源主动加你_希爱力双效片用后感受

安阳吧贴吧_logo设计公司标志_微商怎样让客源主动加你_希爱力双效片用后感受

2025/1/16 1:33:31 来源:https://blog.csdn.net/qq_57755091/article/details/145058724  浏览:    关键词:安阳吧贴吧_logo设计公司标志_微商怎样让客源主动加你_希爱力双效片用后感受
安阳吧贴吧_logo设计公司标志_微商怎样让客源主动加你_希爱力双效片用后感受

spdlog库介绍及使用方法

spdlog 是一个由Gabriel Melman开发的高速、轻量级的C++日志库,旨在提供简单易用的日志记录功能,同时保持高性能。它支持多种日志目标,包括控制台、文件、轮转文件等,允许自定义日志过滤和动态改变日志级别。该库的设计使其在多线程环境中也能安全使用,适合高负载的日志记录场景。

安装spdlog
  1. 通过CMake FetchContent(推荐):

    cmake复制

    cmake_minimum_required(VERSION 3.14)
    project(MyApp)
    set(CMAKE_CXX_STANDARD 17)
    include(FetchContent)
    FetchContent_Declare(spdlogGIT_REPOSITORY https://github.com/gabime/spdlog.gitGIT_TAG        v1.11.0
    )
    FetchContent_MakeAvailable(spdlog)
  2. 手动下载

    • spdlog GitHubicon-default.png?t=O83Ahttps://github.com/gabime/spdlog 下载最新版本。

    • include 目录复制到项目中,并在 CMakeLists.txt 中添加相应的包含路径。

基本使用示例

以下是如何在控制台打印日志的简单示例:

cpp复制

#include <spdlog/spdlog.h>int main() {spdlog::info("欢迎使用spdlog!");  // 输出信息spdlog::error("这是一个错误消息!");  // 输出错误return 0;
}
文件日志记录

要将日志记录到文件,可以使用 basic_logger_mt

cpp复制

#include <spdlog/spdlog.h>
#include <spdlog/sinks/basic_file_sink.h>int main() {try {auto logger = spdlog::basic_logger_mt("basic_logger", "logs/basic-log.txt");logger->info("这是一个信息日志");logger->error("这是一个错误日志");} catch (const spdlog::spdlog_ex& ex) {std::cout << "日志初始化失败: " << ex.what() << std::endl;}return 0;
}
轮转日志记录

对于需要定期备份的日志文件,可以使用 rotating_logger_mt

cpp复制

#include <spdlog/sinks/rotating_file_sink.h>int main() {auto max_size = 1024 * 1024 * 5; // 5 MBauto max_files = 3; // 最多保留3个文件auto logger = spdlog::rotating_logger_mt("rotating_logger", "logs/rotating.txt", max_size, max_files);logger->info("这是一个轮转日志示例");return 0;
}

项目实战

#ifndef LOG_H
#define LOG_H#include <spdlog/logger.h>
#include <spdlog/sinks/rotating_file_sink.h>
#include <sodlog/spdlog.h>class Log
{
public:static std::shared_ptr<spdlog::logger> getLog(){static Log log;return spdlog::get("basic_logger");}private:Log(){auto max_size = 1048576 * 500;auto max_files = 3;auto logger = spdlog::rotating_logger_mt("basic_logger", "log/rotating.txt", max_size, max_files);logger->setpattern("[%n][%Y-%m-%d %H:%M:%S.%e] [%l] [%t] %v");}
}#endif

使用示例

#include "log.h"int a = 1;
Log::getLog()->info("hahahahha : {}", a);

高级配置

spdlog还支持异步日志记录和多种输出目标,可以根据项目需求进行配置。你可以设置日志格式、日志级别等,具体方法可以参考官方文档。

总结

spdlog是一个功能强大且易于使用的C++日志库,适合各种项目开发需求。通过简单的配置和代码,你可以轻松实现高效的日志记录功能,提升项目的可维护性和调试效率。

参考:

C++高性能日志库spdlog使用指南-CSDN博客

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com