Я хочу вести журнал в разных файлах в моем коде.
Как я могу сделать это в Log4cxx с конфигурацией xml или программно в коде ...
Обновление:
Подход Logger.addAppender ():
log4cxx::helpers::Pool p;
std::string paramAppender = "appxNormalAppender";
std::string paramFileName = "\\Logs\\MyLog.txt";
LOG4CXX_DECODE_CHAR(logAppender, paramAppender );
LOG4CXX_DECODE_CHAR(logFileName, paramFileName );
FileAppenderPtr fileAppender =
logger->getLoggerRepository()->getRootLogger()->getAppender(logAppender);
if(fileAppender!= NULL)
{
fileAppender->setFile(logFileName);
fileAppender->activateOptions(p);
}
Это не работает, потому что
Предположим, что я установил для FileName значение Logger-k для компонента k, он регистрируется в Logger-k, затем я устанавливаю имя файла на Logger-k + 1 для компонента k + 1, затем оба компонента k, и k + 1 регистрируют один и тот же файл loggerk + 1. Кажется, что последнее имя файла перекрывает или влияет на все остальные ...
И
Все компоненты compenent 1, ... compoeent k, componentk + 1, .... компонент n находится в том же приложении ...