咨询:如何将openapi-generator-maven-plugin日志级别调整为WARN
解决openapi-generator-maven-plugin INFO日志过多的问题
下面是几个经过验证的可行方案,按优先级排序:
1. 命令行直接指定日志级别
Maven默认使用slf4j-simple日志实现,直接通过系统参数精准控制openapi-generator相关包的日志输出,无需修改配置文件:
# 仅将openapi工具包日志设为WARN级别 mvn clean install -Dorg.slf4j.simpleLogger.log.org.openapitools=warn # 极端情况可设为ERROR彻底屏蔽 mvn clean install -Dorg.slf4j.simpleLogger.log.org.openapitools=error
2. 在pom.xml中固化日志配置
如果不想每次命令行传参,可在pom的properties节点添加全局配置:
<properties> <!-- 全局默认日志级别设为WARN,可选 --> <org.slf4j.simpleLogger.defaultLogLevel>warn</org.slf4j.simpleLogger.defaultLogLevel> <!-- 单独控制openapi生成器的日志级别 --> <org.slf4j.simpleLogger.log.org.openapitools>warn</org.slf4j.simpleLogger.log.org.openapitools> </properties>
3. 让插件加载项目的日志配置文件
若项目已使用logback/log4j2,可通过exec-maven-plugin直接调用openapi生成器主类,强制加载项目的日志配置:
<build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>3.1.0</version> <configuration> <mainClass>org.openapitools.codegen.OpenAPIGenerator</mainClass> <arguments> <argument>generate</argument> <!-- 这里添加你的生成器参数,如-i、-g、-o等 --> </arguments> <systemProperties> <systemProperty> <key>logback.configurationFile</key> <value>${project.basedir}/src/main/resources/logback.xml</value> </systemProperty> </systemProperties> </configuration> </plugin> </plugins> </build>
然后在logback.xml中添加精准过滤:
<configuration> <logger name="org.openapitools" level="warn" additivity="false"> <appender-ref ref="STDOUT" /> </logger> <!-- 保留项目原有日志配置 --> </configuration>
4. 升级插件到最新稳定版
部分旧版本的openapi-generator-maven-plugin存在日志配置不生效的bug,升级到最新版后可能解决该问题:
<plugin> <groupId>org.openapitools</groupId> <artifactId>openapi-generator-maven-plugin</artifactId> <version>7.6.0</version> <!-- 替换为最新稳定版 --> <executions> <!-- 你的执行配置 --> </executions> </plugin>
关键误区说明
- 直接修改项目的logback.xml或slf4j.properties不生效,是因为Maven插件运行在独立类加载器中,默认不会加载项目的日志配置;
- 该插件本身未提供专门的日志级别配置参数,只能通过Maven的日志系统或包级别的日志控制来实现屏蔽。
内容的提问来源于stack exchange,提问作者Amit Nagarkoti
相关产品推荐
相关产品推荐

