spdlog

快速的 C++ 日志库
授权协议 MIT
开发语言 C/C++
所属分类 程序开发、 日志工具(Logging)
软件类型 开源软件
地区 不详
投 递 者 陆翰藻
操作系统 Windows
开源组织
适用人群 未知
 软件概览

spdlog 是一个快速的 C++ 日志库,只包含头文件,兼容 C++11。

特性:

  • 非常快

  • 只包含头文件

  • 无需依赖第三方库

  • 支持跨平台 - Linux / Windows on 32/64 bits

  • 支持多线程

  • 可对日志文件进行循环输出

  • 可每日生成日志文件

  • 支持控制台日志输出

  • 可选的异步日志

  • 支持日志输出级别

  • 可自定义日志格式

示例代码:

#include <iostream>
#include "spdlog/spdlog.h"

int main(int, char* [])
{
    namespace spd = spdlog;

    try
    {
        std::string filename = "spdlog_example";
        auto console = spd::stdout_logger_mt("console");
        console->info("Welcome to spdlog!") ;
        console->info() << "Creating file " << filename << "..";

        auto file_logger = spd::rotating_logger_mt("file_logger", filename, 1024 * 1024 * 5, 3);
        file_logger->info("Log file message number", 1);

        for (int i = 0; i < 100; ++i)
        {
            auto square = i*i;
            file_logger->info() << i << '*' << i << '=' << square << " (" << "0x" << std::hex << square << ")";
        }

        // Change log level to all loggers to warning and above
        spd::set_level(spd::level::WARN);
        console->info("This should not be displayed");
        console->warn("This should!");
        spd::set_level(spd::level::INFO);

        // Change format pattern to all loggers
        spd::set_pattern(" **** %Y-%m-%d %H:%M:%S.%e %l **** %v");
        spd::get("console")->info("This is another message with different format");
    }
    catch (const spd::spdlog_ex& ex)
    {
        std::cout << "Log failed: " << ex.what() << std::endl;
    }
    return 0;
}
  • 说明:所有内容翻译自spdlog的wiki,受英语水平所限,有所错误或失真在所难免,如果您有更好的建议,请在博文下留言。 线程安全 spdlog:: 命名空间下的是线程安全的,当loggers在不同的线程同时执行时,下述函数不应该被调用: spdlog::set_error_handler(log_err_handler); // or logger->set_error_handler(log_

  • spdlog是一款开源的、快速的日志库。 spdlog库 spdlog是基于C++11实现的一款纯头文件的日志管理库(git地址:https://github.com/gabime/spdlog,API说明:https://spdlog.docsforge.com/v1.x/1.quickstart/): 配置特别简单,仅包含头文件即可; 写日志方式简单明了; 可实现自动按日期创建日志文件/定时创

  • 为什么选择spdlog? 轻量(header only) 支持异步\backtrace\rotating files\daily file … 文档健全github\ wiki 线程安全 高可拓展 spdlog组成部分 主要由logger(记录器)和sink(接收器)两部分组成。 spdlog的高可拓展体现在logger和sink的可由用户自定义。 logger 主要关注几个要点: logger类

  • SPDLOG使用 因项目需要导入日志系统,所以需要对SPDLOG进行评测,具体的github地址: https://github.com/gabime/spdlog SPDLOG特性 提示:这里可以添加本文要记录的大概内容: SPDLOG是一个快速的,并且只需要头文件编译的十分好用的日志系统, 具备以下特性 十分快速 仅仅需要头文件被编译 丰富的格式, 使用fmt库 异步模式 (可选) 定制化格式

  • 转自:spdlog学习笔记 说明:所有内容翻译自spdlog的wiki,受英语水平所限,有所错误或失真在所难免,如果您有更好的建议,请在博文下留言。 线程安全 spdlog:: 命名空间下的是线程安全的,当loggers在不同的线程同时执行时,下述函数不应该被调用: spdlog::set_error_handler(log_err_handler); // or logger->set_erro

  • 1.概述 spdlog github地址,spdlog日志库自身带有包括控制台日志记录、基础文件日志记录、循环文件日志记录、每日文件日志记录等在内的日志记录方式,能满足日常不同的情景需求。 本文主要介绍spdlog日志库的基本使用,包括创建日志记录器(logger)、创建日志记录器槽(sink)、设置日志输出内容格式(pattern)、设置日志输出等级(level)等。如果想要获得这个库更加全面详

  • spdlog自定义sink spdlog自定义根据时间和文件大小来同时作为条件的sink. spdlog版本:1.11.0 my_file_sink.h // Copyright(c) 2015-present, Gabi Melman & spdlog contributors. // Distributed under the MIT License (http://opensource.or

  • 先上日志配置定义 struct logger_config { std::string name = "run_logger"; spdlog::level::level_enum level = spdlog::level::trace; std::string format = "[%Y-%m-%d %H:%M:%S.%f] [%P] [%^%l%$] [%s:%# %

  • spdlog wiki:https://github.com/gabime/spdlog/wiki 别人的学习笔记:https://www.cnblogs.com/oucsheep/p/8426548.html 别人的学习笔记:https://github.com/gabime/spdlog/wiki 百度搜 spdlog 封装可以看到很多写的差不多的单例类,我看公司遗留的代码也是借鉴这些写的。

 相关资料
  • 标题应该是不言自明的。 出于调试目的,我希望express打印每个服务请求的响应代码和正文。打印响应代码很容易,但打印响应体更为复杂,因为响应体似乎不容易作为属性使用。 以下情况不起作用: 当然,我可以很容易地在发出请求的客户端打印响应,但我也更喜欢在服务器端打印。 PS:如果有帮助的话,我所有的响应都是json,但希望有一个解决方案可以处理一般的响应。

  • 主要内容:1. Objective-C集合快速枚举是Objective-C的功能,用于枚举集合。 因此,要了解快速枚举,首先需要了解集合,这将在下一节中进行说明。 1. Objective-C集合 集合是基本结构。它用于保存和管理其他对象。 集合的主要目的是提供一种有效存储和检索对象的通用方法。 有几种不同类型的集合。 虽然它们都能实现能够容纳其他对象的相同目的,但它们的主要区别在于检索对象的方式。 Objective-C中使用的最常见的

  • 为了打印日志,可使用Objective-C编程语言中的方法,首先在示例中使用了这个方法。 下面来看一下打印“Hello World”字样的简单代码 - 现在,当编译并运行程序时,将得到以下结果 - 在实时应用程序中禁用日志 由于在应用程序中经常使用,它将日志信息打印在设备的日志中,并且在实时构建中打印日志是不好的。 因此,使用类型定义来打印日志,如下所示。 执行上面示例代码,得到以下结果: 现在,

  • 本文向大家介绍c# 继承快速入门,包括了c# 继承快速入门的使用技巧和注意事项,需要的朋友参考一下 在面向对象当中继承是非常重要的,也是面向对象的三大特性之一(继承、封装、多态),今天我们来揭开他的神秘面纱。 话不多说,我们上菜。 写好代码后我们运行看看效果! 很显然看出来,公司两个程序员都继承了程序员类。 总结: 父类包含了多少内容,派生类(子类)全部接受(包括属性 字段 方法等), 可以重写覆

  • 我正在使用一个bash脚本从日志文件中读取一些行。此日志文件的基本格式为:

  • 本文向大家介绍C#写日志类实例,包括了C#写日志类实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#写日志类,分享给大家供大家参考。 具体实现方法如下: 希望本文所述对大家的C#程序设计有所帮助。