Log4cxx多输出

时间:2011-12-13 07:38:38

标签: log4cxx

  • 我在utility.dll中有log4cxx实现。这个DLL由application1.dll和application2.dll

  • 使用
  • Application1将日志文件名定义为“c:\ application1 \ applog.log”; Application2将日志文件名定义为“c:\ application2 \ applog.log”。

如果我单独运行这两个应用程序,则会在相应的文件中正确创建日志。如果我尝试同时运行这两个应用程序,则会在最新打开的应用程序的日志文件中创建日志。

我已经打开了application1,首先在“application1 \ applog.log”文件中创建了日志。同时我打开了Application2。现在,两个应用程序的日志都附加在“application2 \ applog.log”

注意:我的两个应用程序都是dll,就像驱动程序一样)两者都是一个单独的应用程序,我需要将日志放在不同的输出文件中。这两个dll都将在相同的exe下运行。

如何使每个应用程序使用相同的log4cxx实现来登录不同的日志文件?

1 个答案:

答案 0 :(得分:1)

我有类似的情况,我的app和dll登录到同一个文件。这只是一个有根据的猜测,但尝试更改dll和app中记录器的名称。

// in application1.dll
const log4cxx::LoggerPtr logger1  log4cxx::Logger::getLogger("ABC")); 
log4cxx::PropertyConfigurator::configure("./application1.config");

// in application2.dll
const log4cxx::LoggerPtr logger2  log4cxx::Logger::getLogger("ABC")); 
log4cxx::PropertyConfigurator::configure("./application2.config");

假设您正在使用预制配置。除log4j.appender.File.File=

外,applicagtion1.config和application2.config可能完全相同

在application1.config

log4j.appender.File.File=logs/application1.logs

并在application2.config

log4j.appender.File.File=logs/application2.logs