我正在尝试使用 LoggerHandler 来记录所有传入的请求。我正在使用 logback.xml 来指定附加程序。我正在为日志设置系统属性。
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 的类似乎无关紧要,因为我尝试了两个不同的类。
我在生产代码和测试中将这些行作为程序的第一行来运行,以便在两种情况下都能正常工作。
关于java - vertx LoggerHandler 不添加 logback,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31422953/