Войти в другой файл с помощью log4cxx

Я хочу вести журнал в разных файлах в моем коде.

Как я могу сделать это в Log4cxx с конфигурацией xml или программно в коде ...

  • Предположим, у меня есть 1.k, k + 1, .. n компонентов.
  • Они работают в одном приложении
  • Я хочу, чтобы журнал компонента k был в Logger-k, а журнал компонентов k + 1 - в Logger-k + 1 в то же время

Обновление:

Подход 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 находится в том же приложении ...

5
задан Novalis 14 February 2012 в 15:54
поделиться