я использую 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");
Похоже, после того, как вы измените свои QSettings, и они там отражены, вам нужно использовать:
или же
Log4Qt::PropertyConfigurator::configure()
со ссылкой на вашу переменную QSettings. Если это не относится к изменению имени файла, возможно, вам придется искать способ запуска автозагрузки на синглтоне Log4Qt.
Надеюсь, это поможет.
Других решений пока нет …