我在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实现来登录不同的日志文件?
答案 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=
行
在application1.config
中log4j.appender.File.File=logs/application1.logs
并在application2.config
中log4j.appender.File.File=logs/application2.logs