boost log庫使用一

2021-09-10 22:26:51 字數 3613 閱讀 7717

我的英文部落格參考:

我過去習慣使用cppcms提供的日誌庫,簡單好用。從1.54版本,boost發布了日誌庫。當讀了一些文件後,因為下面的一些原因,我決定轉而使用boost::log。

1. tcp服務大概連線了2000個裝置,tcp server會儲存所有詳細資訊。舉個例子,裝置登入到tcp server,裝置退出,裝置發出訊息,server發出訊息。並且裝置的數量在將來還會增長。這些導致會建立一些很大的日誌檔案。

2. 需要分析日誌檔案從而診斷tcp server的故障。也需要觀察我們的客戶是如何使用他們的裝置。當有故障發生時,管理員要收到郵件通知。產品相關人員能夠在**上看到使用者行為分析報告以幫助他們改進產品。

很顯然,boost的新的log庫為上述目的而設計的。正是我期待的。

這裡有乙個例子,絕大多數**來自於boost log 文件:

./bootstrap.sh --with-libraries=system,filesystem,log,thread --with-toolset=clang./b2 toolset=clang cxxflags="-std=c++11"

好,現在建立乙個main.cc檔案,然後寫下**如下:

#include

#include

using

namespace

std;int

main

()

c++ -g -std=c++11 -wall -dboost_log_dyn_link -o ./main.o -c ./main.ccc++ -g -std=c++11 ./main.o -o main -rdynamic -lpthread -lboost_log -lboost_system -lboost_thread -lboost_filesystem

現在執行程式./main,輸出結果如下:

$ ./mainhello, world[2013-12-03 14:35:14.309093] [0x000007f362c17d74] [trace]   a trace severity message[2013-12-03 14:35:14.309208] [0x000007f362c17d74] [debug]   a debug severity message[2013-12-03 14:35:14.309224] [0x000007f362c17d74] [info]    an informational severity message[2013-12-03 14:35:14.309237] [0x000007f362c17d74] [warning] a warning severity message[2013-12-03 14:35:14.309250] [0x000007f362c17d74] [error]   an error severity message[2013-12-03 14:35:14.309262] [0x000007f362c17d74] [fatal]   a fatal severity message

預設情況系,boost_log_trivial輸出所有資訊到控制台。有些人遇到了這個問題:

undefined reference to `boost::log::v2s_mt_posix::trivial::logger::get()'

編譯時新增乙個巨集即可解決。

-dboost_log_dyn_link

再分享一下我老師大神的人工智慧教程吧。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智慧的隊伍中來!

我的英文部落格參考:

我過去習慣使用cppcms提供的日誌庫,簡單好用。從1.54版本,boost發布了日誌庫。當讀了一些文件後,因為下面的一些原因,我決定轉而使用boost::log。

1. tcp服務大概連線了2000個裝置,tcp server會儲存所有詳細資訊。舉個例子,裝置登入到tcp server,裝置退出,裝置發出訊息,server發出訊息。並且裝置的數量在將來還會增長。這些導致會建立一些很大的日誌檔案。

2. 需要分析日誌檔案從而診斷tcp server的故障。也需要觀察我們的客戶是如何使用他們的裝置。當有故障發生時,管理員要收到郵件通知。產品相關人員能夠在**上看到使用者行為分析報告以幫助他們改進產品。

很顯然,boost的新的log庫為上述目的而設計的。正是我期待的。

這裡有乙個例子,絕大多數**來自於boost log 文件:

./bootstrap.sh --with-libraries=system,filesystem,log,thread --with-toolset=clang./b2 toolset=clang cxxflags="-std=c++11"

好,現在建立乙個main.cc檔案,然後寫下**如下:

#include

#include

using

namespace

std;int

main

()

c++ -g -std=c++11 -wall -dboost_log_dyn_link -o ./main.o -c ./main.ccc++ -g -std=c++11 ./main.o -o main -rdynamic -lpthread -lboost_log -lboost_system -lboost_thread -lboost_filesystem

現在執行程式./main,輸出結果如下:

$ ./mainhello, world[2013-12-03 14:35:14.309093] [0x000007f362c17d74] [trace]   a trace severity message[2013-12-03 14:35:14.309208] [0x000007f362c17d74] [debug]   a debug severity message[2013-12-03 14:35:14.309224] [0x000007f362c17d74] [info]    an informational severity message[2013-12-03 14:35:14.309237] [0x000007f362c17d74] [warning] a warning severity message[2013-12-03 14:35:14.309250] [0x000007f362c17d74] [error]   an error severity message[2013-12-03 14:35:14.309262] [0x000007f362c17d74] [fatal]   a fatal severity message

預設情況系,boost_log_trivial輸出所有資訊到控制台。有些人遇到了這個問題:

undefined reference to `boost::log::v2s_mt_posix::trivial::logger::get()'

編譯時新增乙個巨集即可解決。

-dboost_log_dyn_link

boost log庫使用一

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!我的英文部落格參考 我過去習慣使用cppcms提供的日誌庫,簡單好用。從1.54版本,boost發布了日誌庫。當讀了一些文件後,因為下面的一些原因,我決定轉而使用boost log。1.tcp服務大概連線了2000個裝置,tcp server會儲存...

Boost log庫的使用

只有大於等於設定的日誌級別,才會輸出。將此設定過濾器函式放在日誌使用之前 void set filter void log add file distributed under the boost software license,version 1.0.see accompanying file ...

cJSON庫的使用(一)

在c語言裡用到json格式的字串,拼接起來就很麻煩,如果資料大,需要申請空間,如果中間要再插入乙個子項,還需要麻煩的拷貝拼接。用cjson庫的好處就是 1 拼接 插入方便。臨時增加,修改,直接用對於的介面來實現,快速,方便。2 空間申請問題由介面底層去實現。如果拼接很多,記憶體問題我們不用去過多考慮...