log4cxx配置案例

先看完整配置文件log4cxx.properties

[html]  view plain copy
  1. log4j.additivity.gather = false    
  2. log4j.rootLoggerdebug, R, stdout  
  3.   
  4. //设置子logger  
  5. log4j.logger.Lib_a =debug, ap1, stdout  
  6. log4j.logger.Lib_b =debug, ap2, stdout  
  7.   
  8.   
  9. #设置不继承父Logger  
  10. log4j.additivity.Lib_a=false    
  11. log4j.additivity.Lib_b=false    
  12.   
  13. log4j.appender.logfile.encoding=UTF-8    
  14.     
  15. //标准输出,向控制台打印  
  16. log4j.appender.stdout=org.apache.log4j.ConsoleAppender    
  17. log4j.appender.stdout.layout=org.apache.log4j.PatternLayout    
  18. log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n   
  19.   
  20. //Root  
  21. log4j.appender.R=org.apache.log4j.RollingFileAppender  
  22. log4j.appender.R.File=./hello.log  
  23. log4j.appender.R.MaxFileSize=100KB  
  24. log4j.appender.R.MaxBackupIndex=10  
  25. log4j.appender.R.layout=org.apache.log4j.PatternLayout  
  26. log4j.appender.R.layout.ConversionPattern==%d [%c]-[%p] %m%n   
  27.   
  28. log4j.appender.ap1=org.apache.log4j.RollingFileAppender  
  29. log4j.appender.ap1.File=./hello_a.log  
  30. log4j.appender.ap1.MaxFileSize=100KB  
  31. log4j.appender.ap1.MaxBackupIndex=10  
  32. log4j.appender.ap1.layout=org.apache.log4j.PatternLayout  
  33. log4j.appender.ap1.layout.ConversionPattern==%d{yyyy-MM-dd} [%c]-[%p] %m%n  
  34.   
  35. log4j.appender.ap2=org.apache.log4j.RollingFileAppender  
  36. log4j.appender.ap2.File=./hello_b.log  
  37. log4j.appender.ap2.MaxFileSize=100KB  
  38. log4j.appender.ap2.MaxBackupIndex=10  
  39. log4j.appender.ap2.layout=org.apache.log4j.PatternLayout  
  40. log4j.appender.ap2.layout.ConversionPattern==%d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n   


程序使用方法

[html]  view plain copy
  1. // include log4cxx header files.  
  2. #include <log4cxx/logger.h>  
  3. #include <log4cxx/basicconfigurator.h>  
  4. #include <log4cxx/helpers/exception.h>  
  5. #include <log4cxx/propertyconfigurator.h>  
  6.   
  7. using namespace log4cxx;  
  8. using namespace log4cxx::helpers;  
  9.   
  10.   
  11. //LoggerPtr logger(Logger::getLogger("R"));  
  12. LoggerPtr logger_lib_a(Logger::getLogger("Lib_a"));  
  13. LoggerPtr logger_lib_b(Logger::getLogger("Lib_b"));  
  14.   
  15. int main(int argc, char **argv)  
  16. {  
  17.   
  18.     try  
  19.     {  
  20.         // Set up a simple configuration that logs on the console.  
  21.        PropertyConfigurator::configure("log4cxx.properties");  
  22.   
  23.         //LOG4CXX_INFO(logger, "test R")  
  24.         LOG4CXX_DEBUG(logger_lib_a, "test R.a")  
  25.         LOG4CXX_DEBUG(logger_lib_b, "test R.b")  
  26.     }  
  27.     catch(...)  
  28.     {  
  29.     }  
  30.   
  31.     return 0;  
  32. }  

注意事项:

1. 

log4j.rootLogger= debug, R, stdout

//设置子logger
log4j.logger.Lib_a =debug, ap1, stdout
log4j.logger.Lib_b =debug, ap2, stdout

在这里rootLogger,“L”要大写,下面设置子logger,“l”要小写,这个仿佛是log4cxx规定的。

2. 

#设置不继承父Logger
log4j.additivity.Lib_a=false  
log4j.additivity.Lib_b=false  

这里一定要设置继承关系为非继承,否则子logger设置的属性就白设置了

3.

//设置子logger
log4j.logger.Lib_a =debug, ap1, stdout
log4j.logger.Lib_b =debug, ap2, stdout

子logger要加上stdout,否则会没有控制台打印,stdout设置如下

//标准输出,向控制台打印
log4j.appender.stdout=org.apache.log4j.ConsoleAppender  
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout  
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n 

4. 

LoggerPtr logger_lib_a(Logger::getLogger("Lib_a"));
LoggerPtr logger_lib_b(Logger::getLogger("Lib_b"));

获取logger的时候一定要用append的名,如上。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值