Java 使用不同的配置记录多个记录器

Java 使用不同的配置记录多个记录器,java,logging,logback,Java,Logging,Logback,我想在一个类中使用两个不同的记录器,其中一个记录器使用一个logback配置文件,另一个记录器使用另一个配置文件。例如: 类示例{ //记录器1遵循logback1.xml中的配置 私有静态最终LOGGER1=LoggerFactory.getLogger(Sample.class); //记录器2遵循logback2.xml中的配置 私有静态最终LOGGER2=LoggerFactory.getLogger(Sample.class); 公共myFunc(){ LOGGER1.info(“在m

我想在一个类中使用两个不同的记录器,其中一个记录器使用一个logback配置文件,另一个记录器使用另一个配置文件。例如:

类示例{
//记录器1遵循logback1.xml中的配置
私有静态最终LOGGER1=LoggerFactory.getLogger(Sample.class);
//记录器2遵循logback2.xml中的配置
私有静态最终LOGGER2=LoggerFactory.getLogger(Sample.class);
公共myFunc(){
LOGGER1.info(“在myFunc中”);//按照logback1.xml中的配置写入文件
LOGGER2.info(“Entered myFunc”);//写入logback2.xml中配置的graylog服务器
}
}
我之所以要这样做,是因为我在运行时将第二个记录器注入到代码中,我不希望注入的记录器与主项目中使用的记录器发生冲突。我该怎么做呢


我读了这篇文章:但它似乎解决了从多个配置文件中选择一个配置文件的问题,但“不能像上面的示例那样同时使用两个配置文件。”

这是从不同配置中获取两个记录器的一种方法:

    LoggerContext c1 = new LoggerContext();
    LoggerContext c2 = new LoggerContext();
    new ContextInitializer(c1).configureByResource(new URL("file:logback1.xml"));
    new ContextInitializer(c2).configureByResource(new URL("file:logback2.xml"));
    Logger l1 = c1.getLogger("x");
    Logger l2 = c2.getLogger("x");