程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> log4cplus日志庫的安裝使用

log4cplus日志庫的安裝使用

編輯:關於C語言

一、簡介
        log4cplus是一個C++編寫的開源日志庫,功能全面,一句話概括就是:開發者可以以自定義的格式將日志記錄到自定義的位置上。
        log4cplus其前身是java編寫的log4j,屬於Apache項目,作者是Tad E. Smith。log4cplus具有線程安全、靈活、以及多粒度控制的特點,通過將信息劃分優先級使其可以面向程序調試、運行、測試、和維護等全生命周期;開發者可以選擇將信息輸出到屏幕、文件。
       相比於之前用過的glog,個人覺得log4cplus最大的好處是全面靈活,開發者可以自定義寫入日志的文件,避免glog產生海量的日志小文件。

二、安裝
1、下載:http://log4cplus.sourceforge.net/index.html
本人下載的時1.1.1版本
2、解壓安裝:
tar xvzf log4cplus-x.x.x.tar.gz
cd log4cplus-x.x.x
./configure --prefix=/where/to/install
make
make install
注意: 編譯時要加-llog4cplus

三、組成
1、Appenders:掛接器,決定接收日志的設備,如控制台、文件、網絡等。
2、Layouts:布局器,控制輸出消息的格式.
3、Logger:日志記錄器,日志對象。        
4、Filter:過濾器,解決哪些信息需要輸出的問題,比如DEBUG,WARR,INFO等的輸出控制。
5、Priorities   :優先權,包括TRACE, DEBUG, INFO, WARNING, ERROR, FATAL。
息。


四、代碼示例

#include <iostream>
#include <log4cplus/logger.h>
#include <log4cplus/loggingmacros.h>
#include <log4cplus/configurator.h>
#include <log4cplus/fileappender.h>
#include <log4cplus/consoleappender.h>
#include <log4cplus/layout.h>
// using namespace log4cplus;
// using namespace log4cplus::helpers;
using std::cout;
using std::endl;
using std::auto_ptr;
using std::string;
using log4cplus::Logger;
using log4cplus::ConsoleAppender;
using log4cplus::FileAppender;
using log4cplus::Appender;
using log4cplus::Layout;
using log4cplus::PatternLayout;
using log4cplus::helpers::SharedObjectPtr;
int main () {
            
    /* step 1: Instantiate an appender object */
    SharedObjectPtr<Appender> append(new FileAppender("master.log"));
    append->setName(LOG4CPLUS_TEXT("append for master"));
    /* step 2: Instantiate a layout object */
    auto_ptr<Layout> layout(new PatternLayout(LOG4CPLUS_TEXT("%d{%m/%d/%y %H:%M:%S} %p [%l]: %m %n")));
    /* step 3: Attach the layout object to the appender */
    append->setLayout(layout);
    /* step 4: Instantiate a logger object */
    Logger logger = Logger::getInstance(LOG4CPLUS_TEXT("master"));
    /* step 5: Attach the appender object to the logger  */
    logger.addAppender(append);
    /* step 6: Set a priority for the logger  */
    logger.setLogLevel(log4cplus::ALL_LOG_LEVEL);
    LOG4CPLUS_DEBUG(logger, "This is the FIRST log message");
    return 0;
}


本文出自 “說話的白菜” 博客,請務必保留此出處http://speakingbaicai.blog.51cto.com/5667326/1274823

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved