读书人

log4cplus 能把日记输出到不同的日志文

发布时间: 2013-01-23 10:44:49 作者: rapoo

log4cplus 能把日志输出到不同的日志文件吗?
我知道通过配置文件能把log4cplus 按不同等级输出到不同的文件中。但是如果我想把日志输出到不同的配置文件中, 比如我想把某些文件 输出到 log1.log中, 某些文件输出到log2.log中。 在配置文件中可以做到吗?或者log4cplus 根本没实现这个功能。

附配置文件例子,这个例子是把日志按等级输出到不同的文件中。

log4cplus.rootLogger=DEBUG, ALL_MSGS, TRACE_MSGS, DEBUG_INFO_MSGS, FATAL_MSGS

log4cplus.appender.ALL_MSGS=log4cplus::RollingFileAppender
log4cplus.appender.ALL_MSGS.File=../log/all_msgs.log
log4cplus.appender.ALL_MSGS.MaxFileSize=5000KB
log4cplus.appender.ALL_MSGS.MaxBackupIndex=5
log4cplus.appender.ALL_MSGS.layout=log4cplus::TTCCLayout

log4cplus.appender.TRACE_MSGS=log4cplus::RollingFileAppender
log4cplus.appender.TRACE_MSGS.File=../log/trace_msgs.log
log4cplus.appender.TRACE_MSGS.layout=log4cplus::TTCCLayout
#log4cplus.appender.TRACE_MSGS.filters.1=log4cplus::spi::LogLevelMatchFilter
#log4cplus.appender.TRACE_MSGS.filters.1.LogLevelToMatch=TRACE
#log4cplus.appender.TRACE_MSGS.filters.1.AcceptOnMatch=true
#log4cplus.appender.TRACE_MSGS.filters.2=log4cplus::spi::DenyAllFilter

log4cplus.appender.DEBUG_INFO_MSGS=log4cplus::RollingFileAppender
log4cplus.appender.DEBUG_INFO_MSGS.File=../log/debug_info_msgs.log
log4cplus.appender.DEBUG_INFO_MSGS.layout=log4cplus::TTCCLayout
log4cplus.appender.DEBUG_INFO_MSGS.filters.1=log4cplus::spi::LogLevelRangeFilter
log4cplus.appender.DEBUG_INFO_MSGS.filters.1.LogLevelMin=DEBUG
log4cplus.appender.DEBUG_INFO_MSGS.filters.1.LogLevelMax=INFO
log4cplus.appender.DEBUG_INFO_MSGS.filters.1.AcceptOnMatch=true
log4cplus.appender.DEBUG_INFO_MSGS.filters.2=log4cplus::spi::DenyAllFilter

log4cplus.appender.FATAL_MSGS=log4cplus::RollingFileAppender
log4cplus.appender.FATAL_MSGS.File=../log/fatal_msgs.log
log4cplus.appender.FATAL_MSGS.layout=log4cplus::TTCCLayout
log4cplus.appender.FATAL_MSGS.filters.1=log4cplus::spi::StringMatchFilter
log4cplus.appender.FATAL_MSGS.filters.1.StringToMatch=FATAL
log4cplus.appender.FATAL_MSGS.filters.1.AcceptOnMatch=true
log4cplus.appender.FATAL_MSGS.filters.2=log4cplus::spi::DenyAllFilter

[解决办法]
需要建立多个实例


log4cplus.rootLogger=DEBUG, ALL_MSGS, TRACE_MSGS, DEBUG_INFO_MSGS, FATAL_MSGS
....
log4cplus.Logger1=DEBUG, ALL_MSGS, TRACE_MSGS, DEBUG_INFO_MSGS, FATAL_MSGS
....
log4cplus.Logger2=DEBUG, ALL_MSGS, TRACE_MSGS, DEBUG_INFO_MSGS, FATAL_MSGS
....


还有这个不知道对你有没有帮助


log4cplus.rootLogger=DEBUG,LogToFile1,LogToFile2

log4cplus.appender.LogToFile1=log4cplus::ConsoleAppender
log4cplus.appender.LogToFile1.layout=log4cplus::PatternLayout
log4cplus.appender.LogToFile1.layout.ConversionPattern=%D{%H:%M:%S} %-5p %m%n

log4cplus.appender.LogToFile2=log4cplus::ConsoleAppender
log4cplus.appender.LogToFile2.layout=log4cplus::PatternLayout
log4cplus.appender.LogToFile2.layout.ConversionPattern=%D{%H:%M:%S} %-5p %m%n



具体的还是先参考他的官方手册

读书人网 >VC/MFC

热点推荐