91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++日志庫log4cplus如何使用

發布時間:2023-03-01 17:07:54 來源:億速云 閱讀:172 作者:iii 欄目:開發技術

本篇內容介紹了“C++日志庫log4cplus如何使用”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

編譯&&安裝

下載完成在ubuntn中解壓&&編譯

(使用默認參數和路徑)

1、sudo ./configure

2、sudo make

3、sudo make install

(安裝完成后頭文件路徑默認在/usr/loca/include,庫文件路徑在/usr/local/lib)

4、把庫文件路徑加入到/etc//etc/ld.so.conf文件中然后執行sudo ldconfig

編寫demo

測試需要四個文件,是 MyLogger.h , main.cpp , logconfig.property , CMakeLists.txt (用cmake編譯時可用) ,文件內容如下,放入同一個文件夾進行編譯

MyLogger.h

#include <log4cplus/logger.h>
#include <log4cplus/configurator.h> 
#include <log4cplus/layout.h> 
#include <log4cplus/loggingmacros.h> 
#include <log4cplus/helpers/stringhelper.h> 

#define MY_LOG_FILE_PATH "logconfig.property"

class MyLogger
{
private:
    MyLogger()
    {
        log4cplus::initialize();
        log4cplus::PropertyConfigurator::doConfigure(LOG4CPLUS_TEXT(MY_LOG_FILE_PATH));
        
        m_rootLog = log4cplus::Logger::getRoot();

        m_loggerYW = log4cplus::Logger::getInstance("loggerYW");
        m_loggerWJ = log4cplus::Logger::getInstance("loggerWJ");
        m_loggerUI = log4cplus::Logger::getInstance("loggerUI");     
    }
    ~MyLogger()
    {
        if (m_logger)
        {
            delete m_logger;
        }
    }


    static MyLogger* m_logger;

public:
    static MyLogger * getInstance()
    {
        if (m_logger == NULL)
        {
            m_logger = new MyLogger();
        }
        return m_logger;
        }

    log4cplus::Logger m_rootLog;
    
    log4cplus::Logger m_loggerYW;
    log4cplus::Logger m_loggerWJ;
    log4cplus::Logger m_loggerUI;

};

MyLogger* MyLogger::m_logger = NULL;

main.cpp

#include "MyLogger.h"

int main(int argc, char *argv[])
{
    MyLogger * myLoger = NULL;
    myLoger = MyLogger::getInstance();

    LOG4CPLUS_FATAL(myLoger->m_loggerYW, "DeleteService failed,errCode=[" << 2 << "]");
    LOG4CPLUS_DEBUG(myLoger->m_loggerWJ, " Service is removed");
    LOG4CPLUS_DEBUG(myLoger->m_loggerUI, " Service ");
    
    return 0;
}

logconfig.property

log4cplus.rootLogger=DEBUG,rootLogger
log4cplus.appender.rootLogger=log4cplus::RollingFileAppender  
#log4cplus.appender.rootLogger=log4cplus::ConsoleAppender
log4cplus.appender.rootLogger.MaxFileSize=100MB
log4cplus.appender.rootLogger.MaxBackupIndex=2
log4cplus.appender.rootLogger.File=rootLogger.log
log4cplus.appender.rootLogger.layout=log4cplus::PatternLayout
log4cplus.appender.rootLogger.layout.ConversionPattern=%D:%d{%Q}|%p|%t|%l|%m|%n
log4cplus.appender.rootLogger.filters.1=log4cplus::spi::LogLevelRangeFilter
log4cplus.appender.rootLogger.filters.1.LogLevelMin=TRACE
log4cplus.appender.rootLogger.filters.1.LogLevelMax=FATAL
log4cplus.appender.rootLogger.filters.1.AcceptOnMatch=true
log4cplus.appender.rootLogger.filters.2=log4cplus::spi::DenyAllFilter
  
log4cplus.logger.loggerYW=DEBUG,loggerYW
log4cplus.appender.loggerYW=log4cplus::RollingFileAppender
log4cplus.appender.loggerYW.File=loggerYW.log
log4cplus.appender.loggerYW.layout=log4cplus::PatternLayout
log4cplus.appender.loggerYW.layout.ConversionPattern=%D:%d{%Q}|%p|%t|%l|%m|%n
log4cplus.appender.loggerYW.filters.1=log4cplus::spi::LogLevelRangeFilter
log4cplus.appender.loggerYW.filters.1.LogLevelMin=TRACE
log4cplus.appender.loggerYW.filters.1.LogLevelMax=FATAL
log4cplus.appender.loggerYW.filters.1.AcceptOnMatch=true
log4cplus.appender.loggerYW.filters.2=log4cplus::spi::DenyAllFilter
log4cplus.appender.loggerYW.MaxFileSize=100MB
log4cplus.appender.loggerYW.MaxBackupIndex=2
log4cplus.additivity.loggerYW=false

log4cplus.logger.loggerWJ=DEBUG,loggerWJ
log4cplus.appender.loggerWJ=log4cplus::RollingFileAppender
log4cplus.appender.loggerWJ.File=loggerWJ.log
log4cplus.appender.loggerWJ.layout=log4cplus::PatternLayout
log4cplus.appender.loggerWJ.layout.ConversionPattern=%D:%d{%Q}|%p|%t|%l|%m|%n
log4cplus.appender.loggerWJ.filters.1=log4cplus::spi::LogLevelRangeFilter
log4cplus.appender.loggerWJ.filters.1.LogLevelMin=TRACE
log4cplus.appender.loggerWJ.filters.1.LogLevelMax=FATAL
log4cplus.appender.loggerWJ.filters.1.AcceptOnMatch=true
log4cplus.appender.loggerWJ.filters.2=log4cplus::spi::DenyAllFilter
log4cplus.appender.loggerWJ.MaxFileSize=100MB
log4cplus.appender.loggerWJ.MaxBackupIndex=2
log4cplus.additivity.loggerWJ=false

log4cplus.logger.loggerUI=DEBUG,loggerUI
log4cplus.appender.loggerUI=log4cplus::RollingFileAppender
log4cplus.appender.loggerUI.File=loggerUI.log
log4cplus.appender.loggerUI.layout=log4cplus::PatternLayout
log4cplus.appender.loggerUI.layout.ConversionPattern=%D:%d{%Q}|%p|%t|%l|%m|%n
log4cplus.appender.loggerUI.filters.1=log4cplus::spi::LogLevelRangeFilter
log4cplus.appender.loggerUI.filters.1.LogLevelMin=TRACE
log4cplus.appender.loggerUI.filters.1.LogLevelMax=FATAL
log4cplus.appender.loggerUI.filters.1.AcceptOnMatch=true
log4cplus.appender.loggerUI.filters.2=log4cplus::spi::DenyAllFilter
log4cplus.appender.loggerUI.MaxFileSize=100MB
log4cplus.appender.loggerUI.MaxBackupIndex=2
log4cplus.additivity.loggerUI=false

CMakeLists.txt

# CMake 最低版本號要求
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)

# 項目名
PROJECT(LOG)

# 添加第三方的庫
SET(INC_DIR "/usr/local/include/")
SET(LINK_DIR "/usr/local/lib")

INCLUDE_DIRECTORIES(${INC_DIR})    # 設置頭文件搜索路徑
LINK_DIRECTORIES(${LINK_DIR})    #指定要鏈接的庫文件的路徑,一般不需要
# 將第三方的庫鏈接到可執行文件,靜態鏈接
LINK_LIBRARIES(log4cplus)

# 指定源文件
SET(SRC_LIST "main.cpp")
MESSAGE(STATUS "SRC_LIST :" ${SRC_LIST})

# 指定生成目標
ADD_EXECUTABLE(${PROJECT_NAME} ${SRC_LIST})

# 將第三方的庫鏈接到可執行文件,動態鏈接
#TARGET_LINK_LIBRARIES(${PROJECT_NAME} log4cplus)

# 安裝目標文件
SET(PROJECT_INSTALL_PREFIX "/mnt/hgfs/VM_Shared/Teselog4cplus/build/dd")
INSTALL(TARGETS ${PROJECT_NAME}
        DESTINATION ${PROJECT_INSTALL_PREFIX}
         PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)

# 安裝配置文件
SET(CONFIG_INSTALL_PREFIX "/mnt/hgfs/VM_Shared/Teselog4cplus/build")        
INSTALL(FILES logconfig.property
        DESTINATION ${CONFIG_INSTALL_PREFIX})

用cmake進行編譯

mkdir workspace //創建工作目錄
cd workspace && 創建4個新文件
mkdir build/install -p
cd build
cmake &hellip;/
make
make install

“C++日志庫log4cplus如何使用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

张家口市| 马尔康县| 昌宁县| 乌拉特前旗| 银川市| 丁青县| 奉新县| 包头市| 长岛县| 丰镇市| 章丘市| 漾濞| 滨海县| 都江堰市| 呼图壁县| 岱山县| 曲松县| 六枝特区| 马龙县| 吐鲁番市| 延吉市| 仪陇县| 雷山县| 麻城市| 四川省| 南昌县| 嫩江县| 芮城县| 大化| 大埔县| 安阳县| 沙河市| 揭东县| 辽阳县| 曲靖市| 星子县| 志丹县| 东宁县| 阳谷县| 同仁县| 阿巴嘎旗|