2016-04-13 12 views
0

現在のファイル名を取得したいのですが、取得する方法がわかりません。 config.propertiesファイルで :たとえばVC4000のlog4cplusでファイル名を取得する方法

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年4月13日から今日付を取得する機能を使用する場合-12-30_OTS.csv "と" 2016-04-13_OTS.csv "ファイル名、関数/コーディングの書き方は?

お願いします。

答えて

0

log4cplusはFileAppnder::getName()の機能を有する。アペンダーにアクセスするには、Logger::getAppender()を使用します。

しかし、なぜこれを行う必要がありますか?

UPDATE

私が間違っていました。 getName()はファイル名を取得しません。

FileAppenderから独自のアペンダーを派生させ、必要な機能を追加するか、log4cplusのソースを修正してそのような機能を追加することが唯一の方法だと思います。

+0

しかし、なぜこれを行う必要はありますか? - > .csvがどちらを編集しているのか知りたいからです。 –

+0

cout << logger.getName()<< endl; // "ルート"を取得し、* .csvファイルではありません。そして、私は 'Logger :: getAppender()'の使い方を知らない。 –

+0

こんにちはwilx、それは "OTS_H"& "OTS_D" FileAppnder :: getName()関数で取得します。しかし、私は "2016-04-13-12-30_OTS.csv"を取得したいと思います。何か提案していただけますか? –

関連する問題