1

私はLog4qtを使用しており、公式の手順に従ってログ ファイルを構成しました。実行時に構成を動的に変更できるかどうかを知りたいです。デフォルトのファイルが「myapp.log」であるとします。

// 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");
4

1 に答える 1

2

QSettings を変更した後、そこに反映されたように見えます。次を使用する必要があります。

Log4Qt::Properties::load()

また

Log4Qt::PropertyConfigurator::configure()

QSettings 変数への参照を使用します。ファイル名の変更が適用されない場合は、Log4Qt シングルトンでスタートアップを実行する方法を探す必要があるかもしれません。

それが役立つことを願っています。

于 2012-12-13T22:34:22.833 に答える