vertx LoggerHandler不添加logback

我正在尝试使用LoggerHandler记录所有传入的请求。 我正在使用logback.xml来指定appender。 我正在设置日志记录的系统属性。

System.setProperty("org.vertx.logger-delegate-factory-class-name", "org.vertx.java.core.logging.impl.SLF4JLogDelegateFactory"); 

它仍然在控制台中记录所有内容而不是文件。

这适用于Vert.x 3.4.1:

  import static io.vertx.core.logging.LoggerFactory.LOGGER_DELEGATE_FACTORY_CLASS_NAME; import io.vertx.core.logging.LoggerFactory; // ... setProperty (LOGGER_DELEGATE_FACTORY_CLASS_NAME, SLF4JLogDelegateFactory.class.getName ()); LoggerFactory.getLogger (LoggerFactory.class); // Required for Logback to work in Vertx 

关键是要获得一个记录器,我猜这个记录器初始化Logging子系统,你用来获取Logger的类似乎无关紧要,因为我尝试了两个不同的。

我将这些行作为生产代码中的第一个程序运行, 并在测试中在两个上下文中正常工作。

通过设置VM选项,我能够让它工作:

 -Dvertx.logger-delegate-factory-class-name=io.vertx.core.logging.Log4jLogDelegateFactory 

然后在我的log4j.properties中,我不得不添加:

 log4j.category.io.vertx = TRACE