Могу ли я изменить имя файла конфигурации Log4Qt во время выполнения?

я использую 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");

1

Решение

Похоже, после того, как вы измените свои QSettings, и они там отражены, вам нужно использовать:

Log4Qt::Properties::load()

или же

Log4Qt::PropertyConfigurator::configure()

со ссылкой на вашу переменную QSettings. Если это не относится к изменению имени файла, возможно, вам придется искать способ запуска автозагрузки на синглтоне Log4Qt.

Надеюсь, это поможет.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]