如何在打包vertx fat jar后调整日志级别?

vertx打包使用了fat jar插件,log4j2.xml会被打包到jar文件里,运行时使用java -jar启动无法修改classpath,也就无法修改日志级别

如果用springboot的话,可以通过命令行参数--spring.profiles.active=test在启动时指定要使用的配置文件(故可以在启动时变更日志级别),vertx如何做到类似的功能呢


回答:

log4j2支持变量注入啊,比如:

<Root level="${LOG_LEVEL:DEBUG}">

详情参考官方文档: https://logging.apache.org/lo...

启动的时候就可以通过环境变量或者system property注入替换默认值了啊。

当然你也可以做一个接口(比如ssh或者http)动态调整Logger日志级别,那样会稍微复杂点,没有动态调整日志级别需求的话没必要搞这么复杂


回答:

fat jar运行时也可以设置classpath。

  • 先用压缩工具打开JAR文件META-INF/MANIFEST.MF文件,查看其中的Main-Class属性值,假如是aa.Test
  • 命令行如下执行: java -cp .;yourfat.jar aa.Test

你可以在当前目录“.”下放置需要的文件,搜索路径优先于yourfat.jar


回答:

已经找到了解决办法

java $JVM_OPTS \

-Dlog4j2.configurationFile=conf/log4j2.xml \

-jar *.jar \

--add-opens java.base/java.util=ALL-UNNAMED \

--add-opens java.base/java.lang.reflect=ALL-UNNAMED \

> /dev/null &

设置log4j2.configurationFile即可

以上是 如何在打包vertx fat jar后调整日志级别? 的全部内容, 来源链接: utcz.com/p/944435.html

回到顶部