如何禁用JLine3中的日志功能?
禁用JLine3日志的解决方案
我尝试通过logback.xml配置禁用JLine3的日志功能,配置内容如下,但没有效果:
<configuration> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{YYYY-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -- %msg%n</pattern> </encoder> </appender> <root level="error"> <appender-ref ref="STDOUT"/> </root> <logger name="io.netty" level="INFO"/> </configuration>
查找资料时我看到一段启动命令的修改,但不清楚其含义,修改内容如下:
# 原命令 exec "$JAVA" -XX:+IgnoreUnrecognizedVMOptions -jar "$AS_INSTALL_LIB/client/appserver-cli.jar" "$@" # 修改后命令 exec "$JAVA" -Dfish.payara.admin.command.jline.log.disable=true -jar "$AS_INSTALL_LIB/client/appserver-cli.jar" "$@"
启动命令修改的含义
添加的-Dfish.payara.admin.command.jline.log.disable=true是JVM系统属性,专门用于禁用Payara CLI工具中JLine3相关的日志输出。这是Payara针对自身CLI封装的专属配置,并非JLine3原生参数,所以直接搜索JLine3日志相关内容找不到对应信息。
logback.xml配置无效的原因
JLine3本身不依赖logback,它的日志输出默认用JDK自带的java.util.logging(JUL)实现,所以logback的配置无法管控它的日志。如果想用日志框架配置禁用,需要修改JUL的配置文件(比如logging.properties):
- 在配置文件中添加:
io.jline.level = OFF
- 启动应用时通过JVM参数指定该配置文件:
-Djava.util.logging.config.file=/path/to/your/logging.properties
两种方案对比
- 修改启动命令:操作简单,针对Payara CLI场景直接生效,无需额外配置文件。
- 修改JUL配置:通用型更强,适用于所有使用JLine3且用JUL输出日志的场景。
内容的提问来源于stack exchange,提问作者Kristiano Odadu
相关产品推荐
相关产品推荐

