快速的 C++ 日志库 spdlog

MIT
C/C++
Windows
2014-11-05
红薯

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;
}
加载中

评论(4)

f
fzf
这个写法: console->info() << "Creating file " << filename << ".."; 会编译报错. 支持吗?
大连馋师
大连馋师
是否支持UniCode?
T
TRAVEL__
就是输出'{'和'}'的时候要连续两个,在直接打印一些接收到的内容时有点伤!还有在windows上log速度跟linux上比慢了很多。不知道是不是我哪里没弄好的原因!
小果汁儿
小果汁儿
打算用用试试,顺带看看源码。感谢作者分享

暂无资讯

暂无问答

spdlog静态库方式

spdlog新版本提供了静态库方式,这样比原来的header only方式显著提升了编译速度。 这里分析一下怎么使用: 根目录下的CMakeLists.txt中主要有如下内容: ... include(cmake/ide.cmake) // ...

06/19 19:07
38
0
c++日志库

https://github.com/zuhd-org/easyloggingpp https://github.com/gabime/spdlog https://github.com/emilk/loguru https://github.com/SergiusTheBest/plog https://github.com/google/glog....

07/18 16:11
4
0
flume+elasticsearch日志收集分析

由于不同版存在不兼容问题也试了好多次,网上找别人写的博客版本最后终于成功了。 flume:1.6.0 elasticsearch:1.7.6 kibana:4.1.9 从elasticsearch的lib目录拷贝elasticsearch-1.7.6.jar...

2016/12/15 15:22
93
0
coder-server源码运行问题

1 node版本最好使用 10.16.0 2 spdlog问题,把vscode的源码放到项目的lib下面 3 Object literal may only specify known properties, and '"extra-extension-dirs"' does not exist in type ...

07/10 13:48
4
0
OSChina 技术周刊第八期 —— 10 大常见的 web 开发错误

每周技术抢先看,总有你想要的! 移动开发 【翻译】实现 iOS 上的井字游戏 前端开发 【软件】Twemoji —— Twitter 开源其完整的 Emoji 表情 【软件】LokiJS —— 高性能的 JavaScript 数据库...

2014/11/09 22:22
111
0

没有更多内容

加载失败,请刷新页面

没有更多内容

返回顶部
顶部