Vert.X SLF4J Logging - PullRequest
       19

Vert.X SLF4J Logging

0 голосов
/ 16 октября 2019

Я пытаюсь заставить Vert.X регистрироваться через SLF4J и сталкиваюсь с какой-то странностью .. Я начал с базового vertx-default-jul-logging.properties для документов;

handlers=java.util.logging.ConsoleHandler,java.util.logging.FileHandler
java.util.logging.SimpleFormatter.format=%5$s %6$s\n
java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter
java.util.logging.ConsoleHandler.level=FINEST
java.util.logging.FileHandler.level=INFO
java.util.logging.FileHandler.formatter=io.vertx.core.logging.impl.VertxLoggerFormatter

# Put the log in the system temporary directory
java.util.logging.FileHandler.pattern=%t/vertx.log

.level=INFO
io.vertx.ext.web.level=FINEST
io.vertx.level=INFO
com.hazelcast.level=INFO
io.netty.util.internal.PlatformDependent.level=SEVERE

И когда я достиг своей конечной точкиЯ вижу;

...
2019-10-16 08:04:49 DEBUG ZlibCodecFactory:39 - -Dio.netty.noJdkZlibDecoder: false
2019-10-16 08:04:49 DEBUG ZlibCodecFactory:42 - -Dio.netty.noJdkZlibEncoder: false
Router: 982634710 accepting request GET http://192.168.7.47:8080/metrics 
Route matches: Route[ path:/metrics pattern:null handlers:[MainVerticle$$Lambda$24/1221310547@70a9786e] failureHandlers:[] order:0 methods:[]]@261133359 
Metrics Request

Итак, журналы маршрутизатора, журналы Netty и т. Д. Затем, в соответствии с документами, я перенаправляю все на SLF4J, добавляя зависимости;

compile("org.slf4j:slf4j-api:$slf4jVersion")
compile("org.apache.logging.log4j:log4j-slf4j18-impl:$log4jVersion")
compile("org.apache.logging.log4j:log4j-core:$log4jVersion")

Re- указываю Vert.X и Netty;

System.setProperty("vertx.logger-delegate-factory-class-name", "io.vertx.core.logging.SLF4JLogDelegateFactory");
InternalLoggerFactory.setDefaultFactory(Slf4JLoggerFactory.INSTANCE);

И добавляем log4j2.properties;

status = debug
name = PropertiesConfig

filters = threshold

filter.threshold.type = ThresholdFilter
filter.threshold.level = debug

appenders = console

appender.console.type = Console
appender.console.name = STDOUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

rootLogger.level = debug
rootLogger.appenderRefs = stdout
rootLogger.appenderRef.stdout.ref = STDOUT

Теперь, когда я достиг своей конечной точки;

2019-10-16 08:08:59 DEBUG ZlibCodecFactory:39 - -Dio.netty.noJdkZlibDecoder: false
2019-10-16 08:08:59 DEBUG ZlibCodecFactory:42 - -Dio.netty.noJdkZlibEncoder: false
Metrics Request

ИтакNetty ведет журнал, и я также вижу некоторые записи журнала из Vert.X, но я больше не вижу строки журнала моего маршрутизатора. Кто-нибудь сталкивался с этим? Я не могу понять, что мне не хватает ... Я следил за документами здесь: https://vertx.io/docs/vertx-core/java/#_logging но кое-что еще не получено ..

1 Ответ

0 голосов
/ 29 октября 2019

Когда вам нужен регистратор, получите его с помощью org.slf4j.LoggerFactory.getLogger.

Затем попробуйте позвонить

System.setProperty("vertx.logger-delegate-factory-class-name", "io.vertx.core.logging.SLF4JLogDelegateFactory");
LoggerFactory.initialise();

прямо перед вызовом Vertx.vertx() и долгопрежде чем позвонить LoggerHandler.create(false, LoggerFormat.DEFAULT). Возможно, вы создаете этот обработчик журнала до того, как будет установлена ​​фабрика делегатов.

Наконец, удалите файл vertx-default-jul-logging.properties. Кроме того, не делайте InternalLoggerFactory.setDefaultFactory(Slf4JLoggerFactory.INSTANCE);

Рассмотрите возможность использования logback.groovy вместо подхода properties в будущем.

...