C++日志库log4cplus如何使用

其他教程   发布日期:2023年07月20日   浏览次数:877

本篇内容介绍了“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

  1. #include <log4cplus/logger.h>
  2. #include <log4cplus/configurator.h>
  3. #include <log4cplus/layout.h>
  4. #include <log4cplus/loggingmacros.h>
  5. #include <log4cplus/helpers/stringhelper.h>
  6. #define MY_LOG_FILE_PATH "logconfig.property"
  7. class MyLogger
  8. {
  9. private:
  10. MyLogger()
  11. {
  12. log4cplus::initialize();
  13. log4cplus::PropertyConfigurator::doConfigure(LOG4CPLUS_TEXT(MY_LOG_FILE_PATH));
  14. m_rootLog = log4cplus::Logger::getRoot();
  15. m_loggerYW = log4cplus::Logger::getInstance("loggerYW");
  16. m_loggerWJ = log4cplus::Logger::getInstance("loggerWJ");
  17. m_loggerUI = log4cplus::Logger::getInstance("loggerUI");
  18. }
  19. ~MyLogger()
  20. {
  21. if (m_logger)
  22. {
  23. delete m_logger;
  24. }
  25. }
  26. static MyLogger* m_logger;
  27. public:
  28. static MyLogger * getInstance()
  29. {
  30. if (m_logger == NULL)
  31. {
  32. m_logger = new MyLogger();
  33. }
  34. return m_logger;
  35. }
  36. log4cplus::Logger m_rootLog;
  37. log4cplus::Logger m_loggerYW;
  38. log4cplus::Logger m_loggerWJ;
  39. log4cplus::Logger m_loggerUI;
  40. };
  41. MyLogger* MyLogger::m_logger = NULL;

main.cpp

  1. #include "MyLogger.h"
  2. int main(int argc, char *argv[])
  3. {
  4. MyLogger * myLoger = NULL;
  5. myLoger = MyLogger::getInstance();
  6. LOG4CPLUS_FATAL(myLoger->m_loggerYW, "DeleteService failed,errCode=[" << 2 << "]");
  7. LOG4CPLUS_DEBUG(myLoger->m_loggerWJ, " Service is removed");
  8. LOG4CPLUS_DEBUG(myLoger->m_loggerUI, " Service ");
  9. return 0;
  10. }

logconfig.property

  1. log4cplus.rootLogger=DEBUG,rootLogger
  2. log4cplus.appender.rootLogger=log4cplus::RollingFileAppender
  3. #log4cplus.appender.rootLogger=log4cplus::ConsoleAppender
  4. log4cplus.appender.rootLogger.MaxFileSize=100MB
  5. log4cplus.appender.rootLogger.MaxBackupIndex=2
  6. log4cplus.appender.rootLogger.File=rootLogger.log
  7. log4cplus.appender.rootLogger.layout=log4cplus::PatternLayout
  8. log4cplus.appender.rootLogger.layout.ConversionPattern=%D:%d{%Q}|%p|%t|%l|%m|%n
  9. log4cplus.appender.rootLogger.filters.1=log4cplus::spi::LogLevelRangeFilter
  10. log4cplus.appender.rootLogger.filters.1.LogLevelMin=TRACE
  11. log4cplus.appender.rootLogger.filters.1.LogLevelMax=FATAL
  12. log4cplus.appender.rootLogger.filters.1.AcceptOnMatch=true
  13. log4cplus.appender.rootLogger.filters.2=log4cplus::spi::DenyAllFilter
  14. log4cplus.logger.loggerYW=DEBUG,loggerYW
  15. log4cplus.appender.loggerYW=log4cplus::RollingFileAppender
  16. log4cplus.appender.loggerYW.File=loggerYW.log
  17. log4cplus.appender.loggerYW.layout=log4cplus::PatternLayout
  18. log4cplus.appender.loggerYW.layout.ConversionPattern=%D:%d{%Q}|%p|%t|%l|%m|%n
  19. log4cplus.appender.loggerYW.filters.1=log4cplus::spi::LogLevelRangeFilter
  20. log4cplus.appender.loggerYW.filters.1.LogLevelMin=TRACE
  21. log4cplus.appender.loggerYW.filters.1.LogLevelMax=FATAL
  22. log4cplus.appender.loggerYW.filters.1.AcceptOnMatch=true
  23. log4cplus.appender.loggerYW.filters.2=log4cplus::spi::DenyAllFilter
  24. log4cplus.appender.loggerYW.MaxFileSize=100MB
  25. log4cplus.appender.loggerYW.MaxBackupIndex=2
  26. log4cplus.additivity.loggerYW=false
  27. log4cplus.logger.loggerWJ=DEBUG,loggerWJ
  28. log4cplus.appender.loggerWJ=log4cplus::RollingFileAppender
  29. log4cplus.appender.loggerWJ.File=loggerWJ.log
  30. log4cplus.appender.loggerWJ.layout=log4cplus::PatternLayout
  31. log4cplus.appender.loggerWJ.layout.ConversionPattern=%D:%d{%Q}|%p|%t|%l|%m|%n
  32. log4cplus.appender.loggerWJ.filters.1=log4cplus::spi::LogLevelRangeFilter
  33. log4cplus.appender.loggerWJ.filters.1.LogLevelMin=TRACE
  34. log4cplus.appender.loggerWJ.filters.1.LogLevelMax=FATAL
  35. log4cplus.appender.loggerWJ.filters.1.AcceptOnMatch=true
  36. log4cplus.appender.loggerWJ.filters.2=log4cplus::spi::DenyAllFilter
  37. log4cplus.appender.loggerWJ.MaxFileSize=100MB
  38. log4cplus.appender.loggerWJ.MaxBackupIndex=2
  39. log4cplus.additivity.loggerWJ=false
  40. log4cplus.logger.loggerUI=DEBUG,loggerUI
  41. log4cplus.appender.loggerUI=log4cplus::RollingFileAppender
  42. log4cplus.appender.loggerUI.File=loggerUI.log
  43. log4cplus.appender.loggerUI.layout=log4cplus::PatternLayout
  44. log4cplus.appender.loggerUI.layout.ConversionPattern=%D:%d{%Q}|%p|%t|%l|%m|%n
  45. log4cplus.appender.loggerUI.filters.1=log4cplus::spi::LogLevelRangeFilter
  46. log4cplus.appender.loggerUI.filters.1.LogLevelMin=TRACE
  47. log4cplus.appender.loggerUI.filters.1.LogLevelMax=FATAL
  48. log4cplus.appender.loggerUI.filters.1.AcceptOnMatch=true
  49. log4cplus.appender.loggerUI.filters.2=log4cplus::spi::DenyAllFilter
  50. log4cplus.appender.loggerUI.MaxFileSize=100MB
  51. log4cplus.appender.loggerUI.MaxBackupIndex=2
  52. log4cplus.additivity.loggerUI=false

CMakeLists.txt

  1. # CMake 最低版本号要求
  2. CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
  3. # 项目名
  4. PROJECT(LOG)
  5. # 添加第三方的库
  6. SET(INC_DIR "/usr/local/include/")
  7. SET(LINK_DIR "/usr/local/lib")
  8. INCLUDE_DIRECTORIES(${INC_DIR}) # 设置头文件搜索路径
  9. LINK_DIRECTORIES(${LINK_DIR}) #指定要链接的库文件的路径,一般不需要
  10. # 将第三方的库链接到可执行文件,静态链接
  11. LINK_LIBRARIES(log4cplus)
  12. # 指定源文件
  13. SET(SRC_LIST "main.cpp")
  14. MESSAGE(STATUS "SRC_LIST :" ${SRC_LIST})
  15. # 指定生成目标
  16. ADD_EXECUTABLE(${PROJECT_NAME} ${SRC_LIST})
  17. # 将第三方的库链接到可执行文件,动态链接
  18. #TARGET_LINK_LIBRARIES(${PROJECT_NAME} log4cplus)
  19. # 安装目标文件
  20. SET(PROJECT_INSTALL_PREFIX "/mnt/hgfs/VM_Shared/Teselog4cplus/build/dd")
  21. INSTALL(TARGETS ${PROJECT_NAME}
  22. DESTINATION ${PROJECT_INSTALL_PREFIX}
  23. PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
  24. # 安装配置文件
  25. SET(CONFIG_INSTALL_PREFIX "/mnt/hgfs/VM_Shared/Teselog4cplus/build")
  26. INSTALL(FILES logconfig.property
  27. DESTINATION ${CONFIG_INSTALL_PREFIX})

用cmake进行编译

mkdir workspace //创建工作目录
cd workspace && 创建4个新文件
mkdir build/install -p
cd build
cmake &hellip;/
make
make install

以上就是C++日志库log4cplus如何使用的详细内容,更多关于C++日志库log4cplus如何使用的资料请关注九品源码其它相关文章!