青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

C++ Coder

HCP高性能計算架構,實現,編譯器指令優化,算法優化, LLVM CLANG OpenCL CUDA OpenACC C++AMP OpenMP MPI

C++博客 首頁 新隨筆 聯系 聚合 管理
  98 Posts :: 0 Stories :: 0 Comments :: 0 Trackbacks
http://blog.csdn.net/eclipser1987/article/details/6904301

log4cplus是C++編寫的開源的日志系統,功能非常全面,用到自己開發的工程中會比較專業的,:),本文介紹了log4cplus基本概念,以及如何安裝,配置。


 ### 簡介 ###
log4cplus是C++編寫的開源的日志系統,前身是java編寫的log4j系統.受Apache Software License保護。作者是Tad E. Smith。log4cplus具有線程安全、靈活、以及多粒度控制的特點,通過將信息劃分優先級使其可以面向程序調試、運行、測試、和維護等全生命周期; 你可以選擇將信息輸出到屏幕、文件、NT event log、甚至是遠程服務器;通過指定策略對日志進行定期備份等等。
 
### 下載 ###
最新的log4cplus可以從以下網址下載 http://log4cplus.sourceforge.net本文使用的版本為:1.0.4

 

2. windows下的配置
將"log4cplus_dll class"工程或"log4cplus_static class"工程的dsp 文件插入到你的工程中,或者直接把兩個工程編譯生成的庫以及頭文件所在目錄放到你的工程的搜索路徑中,如果你使用靜態庫,請在你的工程中"project/setting/C++"的preprocessor definitions中加入LOG4CPLUS_STATIC。

進入log4cplus-1.0.4\log4cplus-1.0.4\msvc8目錄,雙擊log4cplus.sln使用Microsoft Visual Studio 2010打開文件。

編譯生成新的動態庫或者靜態庫:

拷貝log4cplusSD.lib(靜態庫)以及 log4cplusD.lib + log4cplusD.dll (動態庫)

注意:使用靜態鏈接,只需要log4cplusSD.lib即可,而使用動態鏈接,則需要log4cplusD.lib + log4cplusD.dll 2個文件。

3。具體配置

首先,將log4cplus 頭文件,拷貝到Microsoft Visual Studio 2010安裝目下的include下,如:

將,log4cplusSD.lib以及log4cplusD.lib 拷貝到Microsoft Visual Studio 2010安裝目下的lib下,如:

將log4cplusD.dll拷貝到Microsoft Visual Studio 2010安裝目下的bin下,如:

 

4。在環境配置完成后,我們可以對具體的項目環境進行配置。

我們創建一個控制臺項目,并進行如下配置:

1。采用靜態鏈接庫:

右鍵項目->屬性->

加入log4cplusSD.lib

注意:才用靜態鏈接庫,可以刪除bin目錄下的log4cplusD.dll 以及lib目錄下的log4cplusD.lib 2個文件。

 

2。采用動態鏈接庫:

右鍵項目->屬性->

注意:才用動態鏈接庫,需要bin目錄下的log4cplusD.dll 以及lib目錄下的log4cplusD.lib 2個文件。可以刪除lib目錄下的log4cplusSD.lib 文件

 

5.編寫簡單程序并測試

 

#include "stdafx.h"

#include 
<log4cplus/logger.h>
#include 
<log4cplus/configurator.h>
#include 
<iomanip>

using namespace log4cplus;

int _tmain(int argc, _TCHAR* argv[])
{
    BasicConfigurator config;
    config.configure();

    Logger logger 
= Logger::getInstance("main");
    LOG4CPLUS_WARN(logger, 
"Hello, World!");
    getchar();
    
return 0;
}

 

注意:

log4cplus官方源碼采用的“多字節字符集”,如果你項目采用“使用 Unicode 字符集”則可以將log4cplus字符集修改后重新生成對應的庫文件!

以下為常用的封裝好的測試實例:

VLog.h

 

#pragma once
#ifndef VLOG_H
#define    VLOG_H

#include 
<log4cplus/logger.h>
#include 
<log4cplus/layout.h>
#include 
<log4cplus/loglevel.h>
#include 
<log4cplus/fileappender.h>
#include 
<log4cplus/consoleappender.h>

#include 
<log4cplus/helpers/loglog.h>

using namespace log4cplus;
using namespace helpers;

/**
 * 使用log4cplus
 * @param logfile 記錄的文件路徑,如“main.log”
 * @param format 格式化前綴,默認%d [%l] %-5p : %m %n
 * @param bebug 是否打印bebug信息,默認true
 * @param lv 設置日記級別
 * @return 
 
*/

void InitLog4cplus(
        
const wchar_t* logfile,
        
const bool console = true,
        
const bool bebug = true,
        LogLevel lv 
= DEBUG_LOG_LEVEL,
        
const wchar_t* format = L"%d : %m%n" /*%d %-5p [%c < %l] : %m %n*/
        );

/**
 * 獲得根日志
 * @return 
 
*/

Logger GetRootLogger(
void);

/**
 * 獲得子日志
 * @param child 子日志名,如,sub;sub.sub1
 * @return 
 
*/

Logger GetSubLogger(
const wchar_t* sub);

/**
 * 關閉日志系統
 
*/

void ShutdownLogger(void);

#endif    /* VLOG_H */


VLog.cpp

 

/************************************************************************/
/* 使用規則:                                                             */
/* 需要log4cplus動態/靜態鏈接庫及頭文件                                      */
/* log4cplus.lib + log4cplus.dll 為動態鏈接庫。log4cplusS.lib為靜態鏈接庫    */
/************************************************************************/
#include 
"VLog.h"

void InitLog4cplus(const wchar_t* logfile, const bool console, const bool bebug,
        LogLevel lv, 
const wchar_t* format)
/*
NOT_SET_LOG_LEVEL               (   -1) :接受缺省的LogLevel,如果有父logger則繼承它的
LogLevelALL_LOG_LEVEL           (    0) :開放所有log信息輸出
TRACE_LOG_LEVEL                 (    0) :開放trace信息輸出(即ALL_LOG_LEVEL)
DEBUG_LOG_LEVEL                 (10000) :開放debug信息輸出
INFO_LOG_LEVEL                  (20000) :開放info信息輸出
WARN_LOG_LEVEL                  (30000) :開放warning信息輸出
ERROR_LOG_LEVEL                 (40000) :開放error信息輸出
FATAL_LOG_LEVEL                 (50000) :開放fatal信息輸出
OFF_LOG_LEVEL                   (60000) :關閉所有log信息輸出
 
*/
 {
    
// 0.日志系統配置:設置顯示debug信息
    LogLog::getLogLog()->setInternalDebugging(bebug);


    
// 創建屏幕輸出Appender,不采用stderror流,不采用立刻寫入模式
    SharedAppenderPtr pappender1(new RollingFileAppender(logfile, 1024 * 1024 * 20050false));
    
// 生成的日志文件名稱,文件最大值(最小1 * 200 M),擴展50文件個數,不采用立刻寫入模式

    
// 2.實例化一個layout對象
    
// 2.1創建layout布局格式
    std::auto_ptr<Layout> playout1(new PatternLayout(format));

    
// 3.將layout對象綁定(attach)到appender對象
    
// pappender.setLayout(std::auto_ptr<Layout> layout);
    pappender1->setLayout(playout1);

    
// 4.Logger :記錄器,保存并跟蹤對象日志信息變更的實體,當你需要對一個對象進行記錄時,就需要生成一個logger。
    Logger rootLogger = Logger::getRoot();

    
// 5.將appender對象綁定(attach)到logger對象,如省略此步驟,標準輸出(屏幕)appender對象會綁定到logger
    rootLogger.addAppender(pappender1);

    
if (console) {
        
// 1.Appenders :掛接器,與布局器緊密配合,將特定格式的消息輸出到所掛接的設備終端 (如屏幕,文件等等)。
        SharedAppenderPtr pappender2(new ConsoleAppender(falsefalse));
        std::auto_ptr
<Layout> playout2(new PatternLayout(format));
        pappender2
->setLayout(playout2);
        rootLogger.addAppender(pappender2);
    }


    
// 6.設置logger的優先級,如省略此步驟,各種有限級的消息都將被記錄
    rootLogger.setLogLevel(lv);
}


Logger GetRootLogger(
void{
    
return Logger::getRoot();
}


Logger GetSubLogger(
const wchar_t* sub) {
    
return Logger::getInstance(sub);
}


void ShutdownLogger(void{
    Logger::getRoot().shutdown();
}


Main.cpp

include "VLog.h"
int _tmain(int argc, _TCHAR* argv[])
{
 
// 加入log4cplus
 
// 初始化log4cplus
 InitLog4cplus(L"main.log");</p><p> // 日志對象:測試一
 log4cplus::Logger test1 = GetSubLogger(L"test1");
 
// 日志對象:測試一 第一次測試
 log4cplus::Logger test1_01 = GetSubLogger(L"test1.01");</p><p> // 類型日志記錄
 LOG4CPLUS_DEBUG(test1_01, "you can log like this :" << "hello " << 100 << '!');</p><p> // 關閉日志
 ShutdownLogger();
}

 

posted on 2012-10-19 22:54 jackdong 閱讀(1506) 評論(0)  編輯 收藏 引用 所屬分類: C++日志文件
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲国产第一页| 国产一区二区激情| 久久电影一区| 欧美日韩aaaaa| 在线成人激情黄色| 性8sex亚洲区入口| 91久久久久久久久| 麻豆久久精品| 国产欧美日韩综合精品二区| 亚洲精品美女在线观看| 欧美一区亚洲| 亚洲欧美精品| 国产欧美精品日韩| 欧美一级理论性理论a| 一区二区三区精品视频| 欧美视频日韩| 亚洲一品av免费观看| 亚洲美女精品成人在线视频| 男女激情视频一区| 亚洲毛片av在线| 亚洲人成网站在线播| 免费不卡中文字幕视频| 亚洲国产高清一区| 欧美高潮视频| 欧美成人精品在线观看| 亚洲免费av片| 一本色道88久久加勒比精品| 欧美日韩在线视频首页| 亚洲一区二三| 亚洲欧美一区二区三区久久| 国产免费成人在线视频| 久久躁狠狠躁夜夜爽| 榴莲视频成人在线观看| 99riav国产精品| 日韩一区二区精品视频| 国产精品s色| 欧美一区三区三区高中清蜜桃| 欧美一区二区三区四区在线观看| 国内成人精品视频| 欧美国产亚洲精品久久久8v| 欧美激情视频一区二区三区在线播放| 亚洲乱码国产乱码精品精98午夜| 亚洲人体偷拍| 国产精品美女在线| 久热国产精品| 欧美裸体一区二区三区| 欧美亚洲在线播放| 久久综合九九| 亚洲免费一级电影| 久久久久综合一区二区三区| 亚洲欧洲视频| 亚洲综合第一页| 亚洲国产视频一区| 一本色道久久88综合亚洲精品ⅰ | 久久精品99无色码中文字幕| 亚洲国产成人高清精品| 一区二区三区色| 伊人成人开心激情综合网| 最新69国产成人精品视频免费| 国内偷自视频区视频综合| 性欧美xxxx视频在线观看| 国产午夜精品全部视频在线播放| 久久亚洲影院| 亚洲高清精品中出| 另类亚洲自拍| 亚洲精品韩国| 欧美精品亚洲精品| 久久资源在线| 亚洲综合色在线| 蜜桃av一区| 亚洲日本va午夜在线电影| 欧美国产一区视频在线观看| 玖玖玖国产精品| 亚洲国产日韩综合一区| 欧美二区在线| 欧美精品免费视频| 在线亚洲高清视频| 亚洲一区二区三区在线播放| 国产精品欧美一区二区三区奶水| 亚洲一区三区电影在线观看| 亚洲午夜av电影| 国产在线拍偷自揄拍精品| 久久影院亚洲| 欧美激情亚洲| 亚洲一卡二卡三卡四卡五卡| 亚洲欧美日韩国产中文| 好吊妞**欧美| 亚洲欧洲日本在线| 国产精品久久久久久久久久久久久久 | 中文成人激情娱乐网| 国产精品日本精品| 久久亚洲私人国产精品va媚药| 卡一卡二国产精品| 亚洲视频在线观看视频| 午夜影院日韩| 亚洲国产欧美在线| 一本一本久久a久久精品综合麻豆| 国产精品免费福利| 欧美电影在线观看| 国产精品久久久久久影视| 久久久久久尹人网香蕉| 欧美激情视频给我| 久久久亚洲一区| 欧美日韩高清在线一区| 久久免费精品日本久久中文字幕| 欧美gay视频激情| 欧美一区二区精品| 欧美理论大片| 久久综合网络一区二区| 欧美色视频日本高清在线观看| 久久婷婷av| 国产精品久久久久久久浪潮网站| 欧美国产免费| 国产欧美日韩一级| 亚洲老板91色精品久久| 狠狠入ady亚洲精品经典电影| 一区二区黄色| 欧美国产日韩a欧美在线观看| 久久久噜噜噜久噜久久| 在线视频亚洲| 欧美69视频| 久久久久在线观看| 国产精品亚洲片夜色在线| 亚洲大胆av| 国产综合久久| 亚洲女人天堂成人av在线| 99在线精品观看| 欧美激情1区2区3区| 欧美11—12娇小xxxx| 国产一区在线观看视频| 亚洲淫性视频| 亚洲欧美另类综合偷拍| 欧美日韩午夜视频在线观看| 亚洲国产精品va| 在线看视频不卡| 久久精品91| 久久亚洲风情| 伊人久久综合97精品| 久久国产色av| 老色批av在线精品| 激情综合自拍| 久久伊人免费视频| 免费h精品视频在线播放| 国产一在线精品一区在线观看| 亚洲欧美日本精品| 久久精品视频导航| 伊人久久噜噜噜躁狠狠躁| 久久精品在线视频| 欧美88av| 亚洲毛片av在线| 欧美日韩在线播| 亚洲视频一区二区在线观看| 亚洲欧美激情视频| 国产日韩欧美一区二区三区四区 | 亚洲影院免费观看| 欧美视频中文字幕| 亚洲专区国产精品| 久久精品国产综合| 亚洲国产欧美日韩精品| 欧美高清视频在线播放| 日韩午夜三级在线| 亚洲欧美自拍偷拍| 国产一区日韩二区欧美三区| 快播亚洲色图| 99精品99| 久久精品中文字幕免费mv| 亚洲第一二三四五区| 欧美国产日韩a欧美在线观看| 99亚洲视频| 久久深夜福利| 一本色道久久综合精品竹菊| 国产精品久久久久一区二区| 久久国产精品色婷婷| 亚洲欧洲在线一区| 欧美在线999| 亚洲美女在线视频| 国产日韩在线播放| 欧美黄色网络| 小黄鸭精品密入口导航| 亚洲成人在线网| 久久精品论坛| 99国产精品国产精品久久| 国产精品亚洲综合一区在线观看| 久久精品国产欧美激情| 亚洲精品国产视频| 麻豆9191精品国产| 亚洲一区二区三区色| 欧美成人激情在线| 午夜精品一区二区三区电影天堂| 精品成人一区二区三区四区| 欧美日韩精品久久| 久久亚洲精品欧美| 午夜精品视频一区| 夜夜嗨av一区二区三区免费区| 久久综合成人精品亚洲另类欧美| 亚洲午夜视频在线观看| 亚洲日韩视频| 在线国产亚洲欧美| 国产日韩欧美亚洲| 国产精品最新自拍|