Log4Cplus在Linux下的安裝及使用__Linux

來源:互聯網
上載者:User

        在做伺服器程式的過程中我想最有用的調試手段應該是日誌系統了,好的日誌能夠直觀快速的定位程式的問題,如系統崩潰,死結,錯誤的異常拋出等。如何選擇一個好的日誌庫對程式員來說至關重要。設計簡陋粗糙的日誌系統,可能會到導致系統的效能隨著日誌的增加而線性降低,還可能導致安全執行緒型等問題,我在項目中用到了log4cplus這個日誌庫,log4cplus是C++編寫的開源的日誌系統,功能非常全面,用到自己開發的工程中會比較專業的。log4cplus是C++編寫的開源的日誌系統,前身是java編寫的log4j系統.受Apache Software License保護。作者是Tad E. Smith。log4cplus具有安全執行緒、靈活、以及多粒度控制的特點,通過將資訊劃分優先順序使其可以面向程式調試、運行、測試、和維護等全生命週期; 你可以選擇將資訊輸出到螢幕、檔案、NT event log、甚至是遠程伺服器;通過指定策略對日誌進行定期備份等等。

Log4cplus在Linux下的安裝:

1.      配置  ./ configure--prefix=/usr

2.      編譯  make

3.      安裝  make intsall

--prefix 是指定安裝目錄,Linux預設會從/usr/include下尋找標頭檔,在/usr/lib目錄尋找庫檔案。

   Log4cplus移植到ARM:

   首先你需要安裝並匯出一個交叉編譯環境,然後查看你的交叉編譯環境預設的庫的安裝目錄,在終端輸入命令:echo 'main(){}'|arm-none-linux-gnueabi-gcc -E -v –

查看預設的安裝目錄。

1.    配置sudo ./configure --prefix=yourinstall path  --host=arm-linux

2.    修改Makefile將Makefile中的所有的與編譯相關的編譯鏈工具都改成交叉編譯工具,這其中包括:ar ,as ,ld ,gcc ,g++,rannlib

3.    編譯 make

4.    安裝 make install

 

Log4Cplus的使用基本步驟:

1.      實現了一個封裝了輸出介質的appender對象

2.      執行個體化一個封裝了輸出格式的Layout對象

3.      將Layout對象綁定(attach)到appender

4.      獲得Logger對象

5.      將append綁定到Logger

6.      設定Logger的日誌等級

7.      列印日誌

例子程式:

#include <iostream>#include <log4cplus/logger.h>#include <log4cplus/loggingmacros.h>#include <log4cplus/configurator.h>#include <iomanip>#include <log4cplus/logger.h>#include <log4cplus/fileappender.h>#include <log4cplus/consoleappender.h>#include <log4cplus/layout.h>#include <time.h>#include <stdio.h>#include <stdlib.h>#include <string.h>using namespace std;using namespace log4cplus;using namespace std;int main(){    SharedAppenderPtr appendPtr(new RollingFileAppender("log_text.txt",1*1024*1024,1,true));    Logger logger = Logger::getInstance("test");    std::string pattern = "%p-%d{%y/%m/%d %H:%M:%S-%Q}{ThreadID:%t} ->%m\r\n";    std::auto_ptr<Layout> layout_(new PatternLayout(pattern));    appendPtr->setLayout(layout_);    logger.addAppender(appendPtr);    logger.setLogLevel(ALL_LOG_LEVEL);    LOG4CPLUS_INFO(logger,"Info message");    LOG4CPLUS_DEBUG(logger,"Debug message");    LOG4CPLUS_TRACE(logger,"Trace message");    LOG4CPLUS_ERROR(logger,"Error message");    LOG4CPLUS_WARN(logger,"Warning message");    LOG4CPLUS_FATAL(logger,"fatal message");    return 0;}

 這是一個簡單的例子,更為具體的使用方式可以去查閱更詳細的資料:如:http://wenku.baidu.com/view/51d96c1d964bcf84b9d57b9c.html Log4cplus日誌庫的有點很明顯,不會隨著日誌數量的增加而增加系統的負擔,而且不用擔心安全執行緒等其他的問題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.