# log **Repository Path**: cjp321/log ## Basic Information - **Project Name**: log - **Description**: 基于C++ spdlog日志库的二次封装 - **Primary Language**: C++ - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 15 - **Created**: 2023-01-30 - **Last Updated**: 2023-01-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # log #### 介绍 基于C++ spdlog日志库的二次封装 **支持以下功能** : 1. 颜色控制台输出 1. 日志文件输出 1. 同步/异步输出模式 2. 配置文件加载日志库 3. 多logger输出 (ps: 可以形成多个日志文件,指定logger输出,方便多模块功能的日志记录)

#### 目录介绍 Hlog:基于spdlog提供的api二次封装源码 json-develop:一个json解析库(nlohmann::json)源码,用于日志配置文件的解析 spdlog-1.x:spdlog日志库的源码
#### 如何在项目中添加 1、在该项目结构下拷贝三个目录Hlog、json-develop、spdlog-1.x、和一个配置文件log.json到你的项目目录。 2、在visual studio 2019中添加包含路径:上面三个目录的include路径 3、代码中执行使用实例即可。注意:如果使用配置文件方式加载,记得将配置文件放入正确的地方

#### **类使用实例** ```c++ #pragma once #include "Hlog.hpp" int main() { //方法1: Hlog log; log.AddColorConsole("log1", Hlog::LEVEL_DEBUG); log.AddRotatingFile("log1", "log/test.log", 10240000, 10, Hlog::LEVEL_DEBUG); log.AddColorConsole("log2", Hlog::LEVEL_DEBUG); log.AddRotatingFile("log2", "log/test.log", 10240000, 10, Hlog::LEVEL_DEBUG); log.Init(Hlog::SYNC); LOG_DEBUG("log1", "test data:{}" ); LOG_INFO("log1", "test data:{}" ); LOG_WARN("log1", "test data:{}" ); LOG_DEBUG("log2", "test data:{}"); LOG_INFO("log2", "test data:{}"); LOG_WARN("log2", "test data:{}"); //方法2:(配置文件加载方式) Hlog log; log.InitConfig("D:\\VisualStudioWorks\\log\\spdlogDemo\\log.json"); LOG_DEBUG("log1", "test data:{}" ); LOG_INFO("log1", "test data:{}" ); LOG_WARN("log1", "test data:{}" ); LOG_DEBUG("log2", "test data:{}"); LOG_INFO("log2", "test data:{}"); LOG_WARN("log2", "test data:{}"); return 0; } ```

#### 配置文件内容 ``` # 文件描述: # outputMode: 同步/异步的日志输出模式, 值: SYNC、ASYNC # level:输出等级,值: TRACE、DEBUG、INFO、WARN、ERROR、CRITI # type: sink类型, 值:color_console、rotating_file # # loggers: 存放所有记录器,里面每个对象都是一个记录器,记录器里面存在多个sink # logger-name: 记录器的名称 # logger-level:记录器的输出等级 # # sinks: 存放多个sink输出位置 # sink-type: sink的类型,控制台或者文件等 { "outputMode" : "SYNC", "loggers" : [ { "name" : "log1", "level" : "DEBUG", "sinks" : [ { "type" : "color_console", "level" : "INFO" }, { "type" : "rotating_file", "level" : "DEBUG", "fileName": "log/test1.log", "maxFileSize" : 10240000, "maxFile" : 10 } ] }, { "name" : "log2", "level" : "DEBUG", "sinks" : [ { "type" : "color_console", "level" : "DEBUG" }, { "type" : "rotating_file", "level" : "DEBUG", "fileName": "log/test2.log", "maxFileSize" : 10240000, "maxFile" : 10 } ] } ] } ```