我想获取当前文件名,但我不知道如何获取它。
例如: 在config.properties文件中:
log4cplus.rootLogger=TRACE, OTS_H, OTS_D
log4cplus.appender.OTS_H=log4cplus::TimeBasedRollingFileAppender
log4cplus.appender.OTS_H.MaxHistory=10
log4cplus.appender.OTS_H.FilenamePattern=%d{yyyy-MM-dd-HH-mm}_OTS.csv
log4cplus.appender.OTS_H.layout=log4cplus::PatternLayout
log4cplus.appender.OTS_H.layout.ConversionPattern=%m%n
log4cplus.appender.OTS_H.filters.1=log4cplus::spi::StringMatchFilter
log4cplus.appender.OTS_H.filters.1.StringToMatch=OK
log4cplus.appender.OTS_H.filters.1.AcceptOnMatch=true
log4cplus.appender.OTS_H.filters.2=log4cplus::spi::DenyAllFilter
log4cplus.appender.OTS_H.RollOnClose=false
log4cplus.appender.OTS_H.Schedule=DAILY
log4cplus.appender.OTS_H.CreateDirs=true
log4cplus.appender.OTS_D=log4cplus::TimeBasedRollingFileAppender
log4cplus.appender.OTS_D.MaxHistory=10
log4cplus.appender.OTS_D.FilenamePattern=%d{yyyy-MM-dd}_OTS.csv
log4cplus.appender.OTS_D.layout=log4cplus::PatternLayout
log4cplus.appender.OTS_D.layout.ConversionPattern=%m%n
log4cplus.appender.OTS_D.filters.1=log4cplus::spi::LogLevelRangeFilter
log4cplus.appender.OTS_D.filters.1.LogLevelMin=ERROR
log4cplus.appender.OTS_D.filters.1.LogLevelMax=ERROR
log4cplus.appender.OTS_D.filters.1.AcceptOnMatch=true
log4cplus.appender.OTS_D.filters.2=log4cplus::spi::DenyAllFilter
log4cplus.appender.OTS_D.RollOnClose=false
log4cplus.appender.OTS_D.Schedule=HOURLY
在我的main.cpp
中ConfigureAndWatchThread configureThread("config.properties", 10000);
Logger logger = Logger::getRoot();
int main(){
// do something...
}
如果使用函数get log date from log4cplus和“2016-04-13-12-30_OTS.csv”和“2016-04-13_OTS.csv”文件名,如何编写函数/编码?
你能帮帮我吗?
答案 0 :(得分:0)
log4cplus具有 FileAppnder::getName()
功能。要访问appender,请使用Logger::getAppender()
。
但是,为什么你需要这样做?
<强>更新强>
我错了。 getName()
无法获取文件名。
我想你唯一的选择就是从FileAppender
派生你自己的appender并添加必要的函数,或者修补你的log4cplus源来添加这样的函数。