2012-12-13 59 views
1

我使用的是Log4qt,我按照official steps配置了一個日誌文件。我想知道是否可以在運行時動態更改配置。假設默認文件是「myapp.log」我可以在運行時更改Log4Qt配置的文件名嗎?

// Set logging level for Log4Qt to TRACE 
s.beginGroup("Log4Qt"); 
s.setValue("Debug", "TRACE"); 

// Configure logging to log to the file C:/myapp.log using the level TRACE 
s.beginGroup("Properties"); 
s.setValue("log4j.appender.A1", "org.apache.log4j.FileAppender"); 
s.setValue("log4j.appender.A1.file", "C:/myapp.log"); 
s.setValue("log4j.appender.A1.layout", "org.apache.log4j.TTCCLayout"); 
s.setValue("log4j.appender.A1.layout.DateFormat", "ISO8601"); 
s.setValue("log4j.rootLogger", "TRACE, A1"); 

// Log first message, which initialises Log4Qt 
Log4Qt::Logger::logger("MyApplication")->info("Hello World"); 

我想在運行時更改文件名,像這樣?

QSettings s; 
s.beginGroup("Properties"); 
s.setValue("log4j.appender.A1.file", "C:/NewFile.log"); 

// Log first message, into new file 
Log4Qt::Logger::logger("MyApplication")->info("Hello World"); 

回答

2

看起來你改變你的QSettings後等,它們都體現在那裏,你需要使用:

Log4Qt::Properties::load()

Log4Qt::PropertyConfigurator::configure()

與一個參考你的QSettings變量。如果這不適用文件名更改,則可能需要尋找一種在Log4Qt單例上運行啓動的方法。

希望有所幫助。

+0

我使用Log4Qt :: PropertyConfigurator :: configure(),因爲我沒有Properties類。它工作正常。非常感謝。 – arthur86

相關問題