我的英文部落格參考:
我過去習慣使用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 空間申請問題由介面底層去實現。如果拼接很多,記憶體問題我們不用去過多考慮...