国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【C++】開源:spdlog跨平臺日志庫配置使用

這篇具有很好參考價(jià)值的文章主要介紹了【C++】開源:spdlog跨平臺日志庫配置使用。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

??★,°:.☆( ̄▽ ̄)/$:.°★ ??
這篇文章主要介紹spdlog日志庫配置使用。
無專精則不能成,無涉獵則不能通?!簡⒊?/font>
歡迎來到我的博客,一起學(xué)習(xí),共同進(jìn)步。
喜歡的朋友可以關(guān)注一下,下次更新不迷路??

??1. 項(xiàng)目介紹

項(xiàng)目Github地址:https://github.com/gabime/spdlog

Spdlog 是一個(gè)高性能的 C++ 日志庫,具有簡單易用的 API 和靈活的配置選項(xiàng)。它被設(shè)計(jì)成易于集成到現(xiàn)有項(xiàng)目中,并提供了多種日志記錄器(loggers)、格式化選項(xiàng)和多線程安全的操作。

下面是一些關(guān)于 Spdlog 的主要特點(diǎn)和功能:

1.簡單易用:Spdlog 提供簡潔的 API,使得日志記錄變得非常容易。你只需要包含頭文件,并使用簡單的方法調(diào)用即可輸出日志。

2.多種日志目標(biāo):Spdlog 支持多種日志目標(biāo),可以將日志記錄到控制臺、文件、網(wǎng)絡(luò)等不同的位置。你可以根據(jù)需求選擇適合的日志目標(biāo)。

3.靈活的格式化:Spdlog 具有靈活的日志格式化選項(xiàng),可以自定義日志的輸出格式。你可以按照自己的需求定義日期、時(shí)間、日志級別和其他附加信息的格式。

4.多線程支持:Spdlog 在設(shè)計(jì)上考慮到多線程環(huán)境下的安全性,可以在多個(gè)線程中同時(shí)記錄日志,而無需擔(dān)心競爭條件。

5.高性能:Spdlog 使用異步日志記錄方式和高效的寫入策略,以提供卓越的性能。它可以處理大量的日志消息而不會對應(yīng)用程序的性能產(chǎn)生顯著影響。

6.支持不同的日志級別:Spdlog 提供了不同的日志級別(如 DEBUG、INFO、WARNING、ERROR 等),可以根據(jù)需求選擇適當(dāng)?shù)募墑e進(jìn)行日志記錄,以幫助你更好地控制日志輸出。

7.集成第三方庫:Spdlog 可以與其他流行的 C++ 庫和框架集成,如 fmtlib、Google Protocol Buffers (protobuf) 等。

8.跨平臺支持:Spdlog 支持在多個(gè)操作系統(tǒng)和編譯器上運(yùn)行,包括 Windows、Linux 和 macOS。它可以無縫地在不同平臺上提供一致的 API 和功能。

??2. 環(huán)境配置

下面進(jìn)行環(huán)境配置:

# apt安裝
sudo apt install libspdlog-dev
# 編譯
g++ -o main main.cpp -lspdlog && ./main


# cmake配置
cmake_minimum_required(VERSION 3.0)
project(YourProject)

find_package(spdlog REQUIRED)

add_executable(YourExecutable your_source_files.cpp)
target_link_libraries(YourExecutable PRIVATE spdlog::spdlog)

??3. 使用說明

最簡示例:

#include <spdlog/spdlog.h>

int main() {
  // 設(shè)置日志級別為 DEBUG
  spdlog::set_level(spdlog::level::debug);

  // 輸出不同級別的日志
  spdlog::debug("This is a debug message");
  spdlog::info("This is an info message");
  spdlog::warn("This is a warning message");
  spdlog::error("This is an error message");

  return 0;
}

設(shè)置兩個(gè)logger,分別輸出在終端和日志文件中:

#include <iostream>
#include <spdlog/spdlog.h>
#include "spdlog/sinks/basic_file_sink.h"
#include "spdlog/sinks/stdout_color_sinks.h"

int main()
{
    // 創(chuàng)建一個(gè)名為 "logger" 的logger
    auto console = spdlog::stdout_color_mt("logger");

    // 創(chuàng)建一個(gè)名為 "logger_2" 的logger
    auto file = spdlog::basic_logger_mt("logger_2", "log1.txt");

    // 設(shè)置日志級別為 info
    console->set_level(spdlog::level::debug);
    file->set_level(spdlog::level::info);

    // 輸出不同級別的日志
    console->debug("This is debug message");
    console->info("Welcome to spdlog!");
    console->error("Some error message with arg{}", 1);
    file->debug("This is debug message");
    file->info("Welcome to spdlog, from a file!");
    file->error("Some error message with arg{}", 2);

    return 0;
}

同時(shí)輸出到終端和文件示例:

#include <spdlog/spdlog.h>
#include <spdlog/sinks/stdout_color_sinks.h>
#include <spdlog/sinks/basic_file_sink.h>

int main()
{
    // 創(chuàng)建控制臺輸出日志記錄器
    auto consoleSink = std::make_shared<spdlog::sinks::stdout_color_sink_mt>();
    auto consoleLogger = std::make_shared<spdlog::logger>("console", consoleSink);

    // 創(chuàng)建文件輸出日志記錄器
    auto fileSink = std::make_shared<spdlog::sinks::basic_file_sink_mt>("logs2.txt");
    auto fileLogger = std::make_shared<spdlog::logger>("file", fileSink);

    // 將控制臺和文件日志記錄器添加到復(fù)合日志記錄器中
    spdlog::sinks_init_list sinks = { consoleSink, fileSink };
    auto multiLogger = std::make_shared<spdlog::logger>("multi_logger", sinks.begin(), sinks.end());

    // 設(shè)置默認(rèn)日志記錄器為復(fù)合日志記錄器
    spdlog::set_default_logger(multiLogger);

	// 設(shè)置日志級別
    spdlog::set_level(spdlog::level::debug);

    // 設(shè)置日志消息的格式
    // spdlog::set_pattern("[%Y-%m-%d %H:%M:%S.%e] [%l] %v");

    // 記錄日志消息
    spdlog::info("Hello, spdlog!");
    spdlog::error("An error occurred.");

    spdlog::debug("Debug message");
    spdlog::info("Info message");
    spdlog::warn("Warning message");
    spdlog::error("Error message");

    // 刷新并關(guān)閉所有日志記錄器
    spdlog::drop_all();

    return 0;
}

【C++】開源:spdlog跨平臺日志庫配置使用,# c++開源項(xiàng)目學(xué)習(xí),c++,開源,開發(fā)語言

以上。文章來源地址http://www.zghlxwxcb.cn/news/detail-646963.html

到了這里,關(guān)于【C++】開源:spdlog跨平臺日志庫配置使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 開源、跨平臺安卓摸魚(投屏)軟件 Scrcpy 中文使用指南

    開源、跨平臺安卓摸魚(投屏)軟件 Scrcpy 中文使用指南

    廢話不說,先上鏈接:GitHub上的Scrcpy Scrcpy 可以將手機(jī)畫面投射到電腦上,讓你可以在電腦上對手機(jī)進(jìn)行操控。Scrcpy 通過 USB 或 Wi-Fi 與安卓手機(jī)相連,不需要在手機(jī)上安裝任何 app,也不需要取得 ROOT 權(quán)限。 簡單地說,就是可以讓你在電腦上控制手機(jī)!它支持鼠標(biāo)控制、鍵盤

    2024年02月12日
    瀏覽(39)
  • C++下跨平臺websocket庫及使用示例

    websocketpp庫使用非常方便,開源,可跨平臺,內(nèi)部實(shí)現(xiàn)全部是head文件,無cpp,接口簡單易用。源碼路徑比如?https://github.com/zaphoyd/websocketpp.git 使用方法是,先下載源碼包并復(fù)制道工程的include目錄下。 --include ? ?--websocketpp 然后在代碼#include \\\"utility_client.hpp\\\"即可調(diào)用其接口進(jìn)行

    2024年04月28日
    瀏覽(23)
  • Windows10中使用VS2022和Cmake編譯構(gòu)建C++開源日志庫-spdlog

    Windows10中使用VS2022和Cmake編譯構(gòu)建C++開源日志庫-spdlog

    Java中有很多日志庫:java.util.logging、Log4j、Logback、Log4j2、slf4j、common-logging。C++的日志庫相對來說就比較少了,比如說glog、log4cpp、spdllog等,目前個(gè)人感覺比較好用的C++開源日志庫當(dāng)屬于spdlog了,跨平臺,支持cmake編譯,在維護(hù)中。 具體可以參考github上面的示例:https://github

    2023年04月17日
    瀏覽(52)
  • C++輕量級跨平臺桌面GUI庫FLTK的簡單使用

    C++輕量級跨平臺桌面GUI庫FLTK的簡單使用

    C++的跨平臺桌面GUI庫有很多,大體上分成兩種流派:retained mode和immediate mode。 其中前者是主流的桌面GUI機(jī)制框架,包括:Qt、wxwidgets、gtk、juce等 后者是一些游戲引擎編輯器常用的GUI機(jī)制框架,包括:imgui、nanogui等 使用這些框架都支持構(gòu)建在windows、mac、linux上面能運(yùn)行的桌面

    2024年02月08日
    瀏覽(87)
  • Spacedrive:開源跨平臺文件管理 | 開源日報(bào) No.57

    Spacedrive:開源跨平臺文件管理 | 開源日報(bào) No.57

    Stars: 91.2k License: MIT Deno 是一個(gè)簡單、現(xiàn)代和安全的 JavaScript 和 TypeScript 運(yùn)行時(shí),使用 V8 引擎并用 Rust 構(gòu)建。其主要功能包括: 默認(rèn)情況下具有高度安全性,除非顯式啟用,否則無法訪問文件、網(wǎng)絡(luò)或環(huán)境。 提供 Web 平臺功能和 API (如 ES 模塊、Web Workers 和 fetch())。 開箱即用

    2024年02月08日
    瀏覽(94)
  • FFmpeg——開源的開源的跨平臺音視頻處理框架簡介

    FFmpeg——開源的開源的跨平臺音視頻處理框架簡介

    引言: ????????FFmpeg是一個(gè)開源的跨平臺音視頻處理框架,可以處理多種音視頻格式。它由Fabrice Bellard于2000年創(chuàng)建,最初是一個(gè)只包括解碼器的項(xiàng)目。后來,很多開發(fā)者參與其中,為FFmpeg增加了多種新的功能,例如編碼器、過濾器、muxer、demuxer等等,使它成為了一個(gè)完整

    2024年03月23日
    瀏覽(90)
  • CPF C#跨平臺UI框架開源了

    CPF C#跨平臺UI框架開源了

    C#跨平臺UI框架 提供NETStandard2.0和net4的庫,通過Netcore可以跨平臺,支持Windows、Mac、Linux,Net4的可以支持XP。 各個(gè)平臺運(yùn)行效果一致,不依賴系統(tǒng)控件。 支持窗體,控件任意透明,支持異形窗體,支持SVG圖標(biāo)顯示。 支持動畫,數(shù)據(jù)綁定,Mvvm模式,CSS等,簡化依賴屬性,數(shù)據(jù)綁

    2024年02月05日
    瀏覽(92)
  • .NET開源、跨平臺的本地日記APP - SwashbucklerDiary

    .NET開源、跨平臺的本地日記APP - SwashbucklerDiary

    今天給大家推薦一個(gè).NET開源、跨平臺的本地日記APP:SwashbucklerDiary「 俠客日記 」。 每個(gè)人的心底都有一個(gè)俠客,如影隨風(fēng),陪你看過一路的風(fēng)景,記得你所有的精彩。 MAUI Blazor Hybrid Masa Blazor SqlSugar Serilog .NET 多平臺應(yīng)用 UI (.NET MAUI) 是一個(gè)跨平臺框架,用于使用 C# 和 XAML 創(chuàng)

    2024年02月08日
    瀏覽(122)
  • 開源的跨平臺的音視頻處理工具FFmpeg

    FFmpeg是一個(gè)開源的跨平臺的音視頻處理工具,可以對音頻、視頻進(jìn)行轉(zhuǎn)碼、裁剪、調(diào)節(jié)音量、添加水印等操作。 廣泛的格式支持。 FFmpeg能夠解碼、編碼、轉(zhuǎn)碼、復(fù)用、分離、流式傳輸、過濾和播放幾乎人類和機(jī)器所創(chuàng)造的任何內(nèi)容。它支持最古老且晦澀難懂的格式,也支持

    2024年02月15日
    瀏覽(88)
  • C++網(wǎng)狐服務(wù)器引入開源日志庫spdlog

    C++網(wǎng)狐服務(wù)器引入開源日志庫spdlog

    ? ? ? ?很多人對日志庫不以為然,包括網(wǎng)狐這種十幾年的公司都不重視,其實(shí)日志庫記錄的東西能在線上出問題時(shí)高效解決,特別是別人寫的東西,人又走了,出了問題,還可以用日志分析快速解決。要是沒有日志記錄,出了問題就疑東疑西,看別人代碼去解決,那就是你

    2024年02月09日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包