本篇内容介绍了“c++日志库log4cplus如何使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!编译&&安装下载完成在u
本篇内容介绍了“c++日志库log4cplus如何使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
下载完成在ubuntn中解压&&编译
(使用默认参数和路径)
sudo ./configure
sudo make
sudo make install
(安装完成后头文件路径默认在/usr/loca/include,库文件路径在/usr/local/lib)
把库文件路径加入到/etc//etc/ld.so.conf文件中然后执行sudo ldconfig
测试需要四个文件,是 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,rootLoggerlog4cplus.appender.rootLogger=log4cplus::RollingFileAppender #log4cplus.appender.rootLogger=log4cplus::ConsoleAppenderlog4cplus.appender.rootLogger.MaxFileSize=100MBlog4cplus.appender.rootLogger.MaxBackupIndex=2log4cplus.appender.rootLogger.File=rootLogger.loglog4cplus.appender.rootLogger.layout=log4cplus::PatternLayoutlog4cplus.appender.rootLogger.layout.ConversionPattern=%D:%d{%Q}|%p|%t|%l|%m|%nlog4cplus.appender.rootLogger.filters.1=log4cplus::spi::LogLevelRangeFilterlog4cplus.appender.rootLogger.filters.1.LogLevelMin=TRACElog4cplus.appender.rootLogger.filters.1.LogLevelMax=FATALlog4cplus.appender.rootLogger.filters.1.AcceptOnMatch=truelog4cplus.appender.rootLogger.filters.2=log4cplus::spi::DenyAllFilter log4cplus.logger.loggerYW=DEBUG,loggerYWlog4cplus.appender.loggerYW=log4cplus::RollingFileAppenderlog4cplus.appender.loggerYW.File=loggerYW.loglog4cplus.appender.loggerYW.layout=log4cplus::PatternLayoutlog4cplus.appender.loggerYW.layout.ConversionPattern=%D:%d{%Q}|%p|%t|%l|%m|%nlog4cplus.appender.loggerYW.filters.1=log4cplus::spi::LogLevelRangeFilterlog4cplus.appender.loggerYW.filters.1.LogLevelMin=TRACElog4cplus.appender.loggerYW.filters.1.LogLevelMax=FATALlog4cplus.appender.loggerYW.filters.1.AcceptOnMatch=truelog4cplus.appender.loggerYW.filters.2=log4cplus::spi::DenyAllFilterlog4cplus.appender.loggerYW.MaxFileSize=100MBlog4cplus.appender.loggerYW.MaxBackupIndex=2log4cplus.additivity.loggerYW=falselog4cplus.logger.loggerWJ=DEBUG,loggerWJlog4cplus.appender.loggerWJ=log4cplus::RollingFileAppenderlog4cplus.appender.loggerWJ.File=loggerWJ.loglog4cplus.appender.loggerWJ.layout=log4cplus::PatternLayoutlog4cplus.appender.loggerWJ.layout.ConversionPattern=%D:%d{%Q}|%p|%t|%l|%m|%nlog4cplus.appender.loggerWJ.filters.1=log4cplus::spi::LogLevelRangeFilterlog4cplus.appender.loggerWJ.filters.1.LogLevelMin=TRACElog4cplus.appender.loggerWJ.filters.1.LogLevelMax=FATALlog4cplus.appender.loggerWJ.filters.1.AcceptOnMatch=truelog4cplus.appender.loggerWJ.filters.2=log4cplus::spi::DenyAllFilterlog4cplus.appender.loggerWJ.MaxFileSize=100MBlog4cplus.appender.loggerWJ.MaxBackupIndex=2log4cplus.additivity.loggerWJ=falselog4cplus.logger.loggerUI=DEBUG,loggerUIlog4cplus.appender.loggerUI=log4cplus::RollingFileAppenderlog4cplus.appender.loggerUI.File=loggerUI.loglog4cplus.appender.loggerUI.layout=log4cplus::PatternLayoutlog4cplus.appender.loggerUI.layout.ConversionPattern=%D:%d{%Q}|%p|%t|%l|%m|%nlog4cplus.appender.loggerUI.filters.1=log4cplus::spi::LogLevelRangeFilterlog4cplus.appender.loggerUI.filters.1.LogLevelMin=TRACElog4cplus.appender.loggerUI.filters.1.LogLevelMax=FATALlog4cplus.appender.loggerUI.filters.1.AcceptOnMatch=truelog4cplus.appender.loggerUI.filters.2=log4cplus::spi::DenyAllFilterlog4cplus.appender.loggerUI.MaxFileSize=100MBlog4cplus.appender.loggerUI.MaxBackupIndex=2log4cplus.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 …/
make
make install
“C++日志库log4cplus如何使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!
--结束END--
本文标题: C++日志库log4cplus如何使用
本文链接: https://www.lsjlt.com/news/350377.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0