Всем привет, разбираюсь с log4cplus, существует вот такой файлик со свойствами:
log4cplus.logger.test=INFO, p4b
log4cplus.appender.p4b=log4cplus::RollingFileAppender
log4cplus.appender.p4b.File=p4b.log
log4cplus.appender.p4b.MaxFileSize=5MB
log4cplus.appender.p4b.MaxBackupIndex=5
log4cplus.appender.p4b.layout=log4cplus::PatternLayout
log4cplus.appender.p4b.layout.ConversionPattern=%d{%d/%m/%y %H:%M:%S} [%t][%p][%c]-%m%n
Все здесь замечательно кроме одного, непонятно как для пользователя устанавливающего ПО указывать папку для создания логов, решил эту задачу вот таким образом:
log4cplus::Initializer initializer;
PropertyConfigurator config(LOG4CPLUS_TEXT("p4b_log.properties"));
const helpers::Properties &props=config.getProperties();
(const_cast<helpers::Properties&>(props)).setProperty(L"appender.p4b.File", L"C:\\temp\\p4b.log");
config.configure();
Все заработало и лог разместился куда нужно, в реальной проге конечно в папку пользователя будет писаться и изменяться путь к папке будет вот таким образом и мне как-то не нравиться этот метод:
const helpers::Properties &props=config.getProperties();
(const_cast<helpers::Properties&>(props)).setProperty(L"appender.p4b.File", new_path);
Я подозреваю что я просто не знаю правильного метода, кто знает подскажите пожалуйста?