Java - 从其他jar中获取来自Logger.getLogger()的自定义LogManager?

时间:2016-04-14 18:18:23

标签: java logging log4j

我有一个使用log4j的项目。

但我不得不将我的项目分成两部分......所以第一个是"核心"一个是另一个是应用程序本身。

我的自定义LogManager仍在&#34; app-project&#34;中,但我需要使用我的LogManager记录&#34;核心项目&#34;。< / p>

我想将我的库(core.jar)中的所有内容记录到我的自定义log4j中。

我该如何使这项工作?这样做有用吗?或者我应该在核心项目中移动我的自定义LogManager?如果是,我如何让我的应用程序登录core.jar的LogManager?

我不知道我是否清楚......这是一幅画:

My goal

目前,在我的核心,我只是在做( java.util.logging ):

Logger.getLogger(this.getClass().getName()).log(Level.INFO, "This is a log message");

我不知道知道它是否有用,但我在我的LogManager类中以编程方式设置我的log4j属性,例如( slf4j.Logger + log4j

public class LogManager{
    private LogManager(){
        //I set it here
    }
}

谢谢!

1 个答案:

答案 0 :(得分:0)

如果您正在使用java.util.logging.Logger来获取日志管理器,那么您可以设置一个系统属性java.util.logging.manager,它将使用命名为的类替换默认日志管理器。系统属性。

文档:https://docs.oracle.com/javase/8/docs/api/java/util/logging/LogManager.html

当然,您需要将类路径设置为新日志管理器类所在的其他Jar文件。