日志库封装(项目通用)

日志库的封装适用于项目调试问题,可以通过打印日志信息具体定位到某一位置。

日志级别管理

日志库支持多种日志级别(TRACE、DEBUG、INFO、WARN、ERROR、FATAL等)。

开发阶段,可以将日志设置为DEBUG,输出详细的信息;生产环境中,将日志级别设置为ERROR或WARNING,只记录关键的错误和警告信息。

日志格式化

日志库可以提供灵活的日志格式化功能,包括时间戳、日志级别、线程信息、文件名、行号等。如:

2025-08-12 10:00:00\] \[INFO\] \[main.cpp:124\] This is an info message.这种格式化有助于快速具体定位问题和理解日志内容。 cout输出输出格式单一,没有内置的格式化功能,需要手动添加时间戳等信息。 ## spdlog封装 采用google的spdlog日志库进行日志管理,对spdlog采用单例模式进行封装。 ```MyLog.h namespace ys { class Logger { public: static void InitLogger(std::string logger_name,std::string log_file,spdlog::level::level_enum log_level); static std::shared_ptr GetLogger(); private: Logger(); Logger(const Logger&) = delete; Logger& operator=(const Logger&)=delete; private: std::shared_ptr _logger; std::mutex _mutex; }; #define DUBG(format, ...) Logger::GetLogger()->debug(std::string("[{:>10s}:{:<4d}]")+format,__FILE__,__LINE__, ##__VA_ARGS__) #define INFO(format, ...) Logger::GetLogger()->info(std::string("[{:>10s}:{:<4d}]")+format,__FILE__,__LINE__, ##__VA_ARGS__) #define WARN(format, ...) Logger::GetLogger()->warn(std::string("[{:>10s}:{:<4d}]")+format,__FILE__,__LINE__, ##__VA_ARGS__) #define ERR(format, ...) Logger::GetLogger()->error(std::string("[{:>10s}:{:<4d}]")+format,__FILE__,__LINE__, ##__VA_ARGS__) }; ```

相关推荐
星火开发设计2 小时前
C++ multiset 全面解析与实战指南
开发语言·数据结构·c++·学习·set·知识
一眼万里*e2 小时前
MavLink消息协议
c++
星火开发设计3 小时前
C++ stack 全面解析与实战指南
java·数据结构·c++·学习·rpc··知识
AI视觉网奇3 小时前
ue 设置骨骼网格体
c++·ue5
编程之路,妙趣横生4 小时前
C++ IO流
c++
fpcc4 小时前
跟我学C++中级篇—std::conjunction手动实现
c++
项目題供诗4 小时前
C语言基础(三)
c语言·c++
1***43804 小时前
C++跨平台开发的核心挑战线程管理等基础功能
开发语言·c++
txinyu的博客5 小时前
C++ 智能指针 (shared_ptr/weak_ptr) 全解析
开发语言·c++