【问题标题】:Help configuring the log4cplus configuration file (properties file)帮助配置log4cplus配置文件(properties文件)
【发布时间】:2011-02-19 06:34:25
【问题描述】:

我像这样创建了一个新的 Logger 对象:

log4cplus::Logger m_WebAccessLogger;  //a class member

然后在构造函数初始化列表中我做:

m_WebAccessLogger(log4cplus::Logger::getInstance("WebAccess")

这工作正常,它按预期记录。我遇到的问题是,我想配置 log4cplus.properties 文件,以便“WebAccess”的所有内容都将转到一个单独的日志文件(现在它转到默认日志文件,其他所有文件都在其中)。

我似乎找不到关于如何配置这些属性文件的文档,所以我需要帮助!

这是我当前的日志属性,我如何告诉它让“WebAccess”转到不同的文件?

log4cplus.rootLogger=DEBUG, ROLLING
log4cplus.appender.STDOUT=log4cplus::ConsoleAppender
log4cplus.appender.STDOUT.layout=log4cplus::PatternLayout
log4cplus.appender.STDOUT.layout.ConversionPattern=%d{%m/%d/%y %H:%M:%S} [%t] %-5p %c{2} %%%x%% - %m [%l]%n
log4cplus.appender.STDOUT.layout.ConversionPattern=%d{%H:%M:%S} [%t] - %m%n

log4cplus.appender.ROLLING=log4cplus::RollingFileAppender
log4cplus.appender.ROLLING.MaxFileSize=5MB
log4cplus.appender.ROLLING.MaxBackupIndex=5
#log4cplus.appender.ROLLING.layout.ConversionPattern=%d{%m/%d/%y %H:%M:%S} [%t] %-5p %c{2} %%%x%% - %m [%l]%n
log4cplus.appender.ROLLING.layout=log4cplus::TTCCLayout
log4cplus.appender.ROLLING.File=c:\projects\ArchiveService\IArchive.log

类似:
WebAccess.File=c:\projects\ArchiveService\webaccess.log

log4cplus.WebAccess.File=webaccess.log

我知道 log4cplus 与 log4j 类似,这就是为什么我把它作为这个标签的原因。

【问题讨论】:

  • 你如何编译这一行? m_WebAccessLogger(log4cplus::Logger::getInstance("WebAccess")) ? Log4cplus 不提供任何此类方法。

标签: c++ logging log4j log4cplus


【解决方案1】:

我猜的。

log4cplus.rootLogger=DEBUG, ROLLING
log4cplus.appender.STDOUT=log4cplus::ConsoleAppender
log4cplus.appender.STDOUT.layout=log4cplus::PatternLayout
log4cplus.appender.STDOUT.layout.ConversionPattern=%d{%m/%d/%y %H:%M:%S} [%t] %-5p %c{2} %%%x%% - %m [%l]%n
log4cplus.appender.STDOUT.layout.ConversionPattern=%d{%H:%M:%S} [%t] - %m%n

log4cplus.appender.ROLLING=log4cplus::RollingFileAppender
log4cplus.appender.ROLLING.MaxFileSize=5MB
log4cplus.appender.ROLLING.MaxBackupIndex=5
#log4cplus.appender.ROLLING.layout.ConversionPattern=%d{%m/%d/%y %H:%M:%S} [%t] %-5p %c{2} %%%x%% - %m [%l]%n
log4cplus.appender.ROLLING.layout=log4cplus::TTCCLayout
log4cplus.appender.ROLLING.File=c:\projects\ArchiveService\Debug\ImageArchive.log

log4cplus.logger.WebAccess=DEBUG, R2
log4cplus.appender.R2=log4cplus::RollingFileAppender
log4cplus.appender.R2.File=c:\projects\ArchiveService\Debug\webaccess.log
log4cplus.appender.R2.MaxFileSize=5MB
log4cplus.appender.R2.MaxBackupIndex=5
#log4cplus.appender.R2.layout=log4cplus::TTCCLayout

【讨论】:

  • 很遗憾,这似乎是找出日志属性文件的唯一方法!
【解决方案2】:

原始问题已于 2010 年得到解答。用于配置的 Log4cplus 文档仍然有点难以找到...对于浏览此处的任何人:


这里是 log4cplus 配置文件的详细示例:

http://log4cplus.sourceforge.net/docs/html/classlog4cplus_1_1PropertyConfigurator.html#a21e8e6b1440cc7a8a47b8fd14c54b239

【讨论】:

  • 感谢您的链接 - 推荐所有使用 log4cplus 的人阅读!