Как получить имя файла в log4cplus в VC++

Я хочу получить текущее имя файла, но я не знаю, как его получить.

Например: в файле 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...
}

Если вы используете функцию, то получите дату из log4cplus и имя файла "2016-04-13-12-30_OTS.csv" и "2016-04-13_OTS.csv", как написать функцию / кодирование?

Не могли бы вы мне помочь, пожалуйста?

1 ответ

log4cplus имеет FileAppnder::getName() функция. Чтобы добраться до аппендера, используйте Logger::getAppender() ,

Однако зачем вам это вообще нужно?

ОБНОВИТЬ

Я был неправ. getName() не дает вам имя файла.

Я полагаю, что единственная альтернатива для вас - это получить своего FileAppender и добавьте необходимую функцию, или исправьте ваши источники log4cplus, чтобы добавить такую ​​функцию.

Другие вопросы по тегам