Maven转Gradle后JavaFX-Launcher日志泛滥,如何调整日志级别?
问题分析与解决方法
日志来源说明
这些日志来自三个不同组件,并非单纯由JavaFX-Launcher输出:
- ical4j库:INFO级日志提示找不到
ical4j.properties配置文件,属于库初始化阶段的默认提示 - JavaFX运行时:WARNING级日志提示JavaFX类加载自未命名模块,是Gradle与Maven对JavaFX模块的默认处理逻辑差异导致的
- Hibernate ORM:INFO级日志输出ORM核心版本号,是框架初始化时的默认输出行为
调整日志级别的具体方法
方式1:通过日志配置文件(持久化推荐)
根据项目使用的日志框架选择对应配置:
若使用Logback(SLF4J绑定)
在src/main/resources下创建logback.xml:
<configuration> <root level="warn"> <appender-ref ref="CONSOLE"/> </root> <!-- 精准控制各组件日志级别 --> <logger name="net.fortuna.ical4j" level="warn"/> <logger name="org.hibernate" level="warn"/> <logger name="com.sun.javafx" level="error"/> </configuration>
若使用Log4j2(SLF4J绑定)
在src/main/resources下创建log4j2.xml:
<Configuration status="warn"> <Appenders> <Console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} -- %msg%n"/> </Console> </Appenders> <Loggers> <Root level="warn"> <AppenderRef ref="Console"/> </Root> <Logger name="net.fortuna.ical4j" level="warn"/> <Logger name="org.hibernate" level="warn"/> <Logger name="com.sun.javafx" level="error"/> </Loggers> </Configuration>
若使用Java Util Logging(JUL,JavaFX默认日志框架)
在src/main/resources下创建logging.properties:
.level=WARNING net.fortuna.ical4j.util.level=WARNING org.hibernate.Version.level=WARNING com.sun.javafx.application.level=SEVERE
然后在build.gradle中配置启动参数加载该文件:
run { jvmArgs += "-Djava.util.logging.config.file=${project.file('src/main/resources/logging.properties').absolutePath}" }
方式2:Gradle启动参数临时调整
如果仅需临时测试,可直接在build.gradle的run任务中添加JVM参数:
run { jvmArgs += [ "-Dnet.fortuna.ical4j.util.level=WARNING", "-Dorg.hibernate.Version.level=WARNING", "-Dcom.sun.javafx.application.level=SEVERE" ] }
内容的提问来源于stack exchange,提问作者Nessarose
相关产品推荐
相关产品推荐

