使用log4cxx登录到不同的文件

Nov*_*lis 5 c++ logging log4cxx

我想在我的代码中记录不同的文件.

如何在Log4cxx中使用xml配置或以编程方式编写代码...

  • 假设我有1.k,k + 1,... n个组件.
  • 它们在同一个应用程序中运行
  • 我想将组件k log记录到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);

}
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为

假设我将FileName设置为Logger-k为k组件,它记录到Logger-k,然后我将文件名设置为Logger-k + 1为compoent k + 1,然后组件k和k + 1记录相同的loggerk +1文件.似乎最后一个文件名覆盖或影响所有其他文件...

所有组成部分1,... compoeent k,componentk + 1,....组件n在同一个应用程序中......

div*_*a23 3

正常创建每个记录器,然后通过 Logger.addAppender() 方法为每个记录器添加一个 FileAppender 设置到所需的文件。