使用log4cxx登录到其他文件 [英] Log to different file with log4cxx

查看:101
本文介绍了使用log4cxx登录到其他文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想用我的代码登录到其他文件.

I want to log to different files in my code.

我该如何在具有XML配置的Log4cxx中或以编程方式在代码中完成此操作...

How can i do that in Log4cxx with xml configuration or programatically in code...

  • 假设我有1.k,k + 1,.. n个组件.
  • 它们在同一应用程序中运行
  • 我希望将组件k记录到Logger-k,将k + 1组件日志记录到Logger-k + 1 同时
  • Suppose that I have 1.k,k+1,..n components.
  • They run in the same application
  • I want component k log to Logger-k, k+1 component log to Logger-k+1 at the same time

更新:

Logger.addAppender()方法:

Logger.addAppender() approach:

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);

}

这不起作用,因为

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

Suppose that i set FileName to Logger-k for k component, it logs to Logger-k, then i set file name to Logger-k+1 for compoent k+1, then both component k, and k+1 log the same loggerk+1 file. It seems last file name overrides or effects all others...

还有

所有组件组件1,...组件k,组件k + 1,.... 组件n在同一应用程序中...

All compoenent compenent 1, ...compoeent k, componentk+1,.... component n are in the same application...

推荐答案

正常创建每个Logger,然后为每个Logger通过Logger.addAppender()方法将FileAppender集添加到所需文件.

Create Each of the Loggers as normal, and then for each logger add a FileAppender set to the desired file via the Logger.addAppender() method.

这篇关于使用log4cxx登录到其他文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆