使用log4cxx登录到其他文件 [英] Log to different file with 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屋!