Изменения конфигурации log4cplus
От: _agg  
Дата: 03.03.17 05:44
Оценка:
Всем привет, разбираюсь с 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);


Я подозреваю что я просто не знаю правильного метода, кто знает подскажите пожалуйста?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.