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
具体的还是先参考他的官方手册