vertx打包使用了fat jar插件,log4j2.xml会被打包到jar文件里,运行时使用java -jar启动无法修改classpath,也就无法修改日志级别
如果用springboot的话,可以通过命令行参数--spring.profiles.active=test在启动时指定要使用的配置文件(故可以在启动时变更日志级别),vertx如何做到类似的功能呢
vertx打包使用了fat jar插件,log4j2.xml会被打包到jar文件里,运行时使用java -jar启动无法修改classpath,也就无法修改日志级别
如果用springboot的话,可以通过命令行参数--spring.profiles.active=test在启动时指定要使用的配置文件(故可以在启动时变更日志级别),vertx如何做到类似的功能呢
fat jar运行时也可以设置classpath。
你可以在当前目录“.”下放置需要的文件,搜索路径优先于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即可
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
3 回答1.7k 阅读✓ 已解决
log4j2支持变量注入啊,比如:
详情参考官方文档: https://logging.apache.org/lo...
启动的时候就可以通过环境变量或者system property注入替换默认值了啊。
当然你也可以做一个接口(比如ssh或者http)动态调整Logger日志级别,那样会稍微复杂点,没有动态调整日志级别需求的话没必要搞这么复杂