【问题标题】:Log4cxx multiple outputLog4cxx 多路输出
【发布时间】:2011-12-13 07:38:38
【问题描述】:
  • 我在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 实现为每个应用程序登录不同的日志文件?

【问题讨论】:

    标签: log4cxx


    【解决方案1】:

    我遇到了类似的情况,我的应用程序和 dll 记录到同一个文件。这只是一个有根据的猜测,但请尝试更改 dll 和应用程序中记录器的名称。

    // 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= 行之外,application2.config 和 application2.config 可以相同

    在 application1.config 中

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

    在 application2.config 中

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      • 2020-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多