liquibase-maven-plugin 日志级别

liquibase-maven-plugin log level

我在 Maven 版本 3.0.1 下使用 liquibase-maven-plugin 版本 3.8.4,我遇到了日志记录问题: 运行

mvn liquibase:update

吐出成百上千行的调试信息,比如

18:09:38.241 [main] DEBUG liquibase.servicelocator.DefaultPackageScanClassResolver - Loaded the class: class liquibase.datatype.core.NumberType in classloader: ClassRealm[plugin>org.liquibase:liquibase-maven-plugin:3.8.4, parent: sun.misc.Launcher$AppClassLoader@7852e922]
18:09:38.242 [main] DEBUG liquibase.servicelocator.DefaultPackageScanClassResolver - Loaded the class: class liquibase.datatype.core.DoubleType in classloader: ClassRealm[plugin>org.liquibase:liquibase-maven-plugin:3.8.4, parent: sun.misc.Launcher$AppClassLoader@7852e922]
18:09:38.242 [main] DEBUG liquibase.servicelocator.DefaultPackageScanClassResolver - Loaded the class: class liquibase.datatype.core.ClobType in classloader: ClassRealm[plugin>org.liquibase:liquibase-maven-plugin:3.8.4, parent: sun.misc.Launcher$AppClassLoader@7852e922]
18:09:38.242 [main] DEBUG liquibase.servicelocator.DefaultPackageScanClassResolver - Loaded the class: class liquibase.datatype.core.FloatType in classloader: ClassRealm[plugin>org.liquibase:liquibase-maven-plugin:3.8.4, parent: sun.misc.Launcher$AppClassLoader@7852e922]
18:09:38.243 [main] DEBUG liquibase.servicelocator.DefaultPackageScanClassResolver - Loaded the class: class liquibase.datatype.core.CharType in classloader: ClassRealm[plugin>org.liquibase:liquibase-maven-plugin:3.8.4, parent: sun.misc.Launcher$AppClassLoader@7852e922]
18:09:38.243 [main] DEBUG liquibase.servicelocator.DefaultPackageScanClassResolver - Loaded the class: class liquibase.datatype.core.DatabaseFunctionType in classloader: ClassRealm[plugin>org.liquibase:liquibase-maven-plugin:3.8.4, parent: sun.misc.Launcher$AppClassLoader@7852e922]
18:09:38.243 [main] DEBUG liquibase.servicelocator.DefaultPackageScanClassResolver - Loaded the class: class liquibase.datatype.LiquibaseDataType in classloader: ClassRealm[plugin>org.liquibase:liquibase-maven-plugin:3.8.4, parent: sun.misc.Launcher$AppClassLoader@7852e922]
18:09:38.243 [main] DEBUG liquibase.servicelocator.DefaultPackageScanClassResolver - Loaded the class: class liquibase.datatype.core.UUIDType in classloader: ClassRealm[plugin>org.liquibase:liquibase-maven-plugin:3.8.4, parent: sun.misc.Launcher$AppClassLoader@7852e922]
18:09:38.244 [main] DEBUG liquibase.servicelocator.DefaultPackageScanClassResolver - Loaded the class: class liquibase.datatype.DatabaseDataType in classloader: ClassRealm[plugin>org.liquibase:liquibase-maven-plugin:3.8.4, parent: sun.misc.Launcher$AppClassLoader@7852e922]
18:09:38.244 [main] DEBUG liquibase.servicelocator.DefaultPackageScanClassResolver - Loaded the class: class liquibase.datatype.core.DecimalType in classloader: ClassRealm[plugin>org.liquibase:liquibase-maven-plugin:3.8.4, parent: sun.misc.Launcher$AppClassLoader@7852e922]
18:09:38.244 [main] DEBUG liquibase.servicelocator.DefaultPackageScanClassResolver - Loaded the class: class liquibase.datatype.core.TinyIntType in classloader: ClassRealm[plugin>org.liquibase:liquibase-maven-plugin:3.8.4, parent: sun.misc.Launcher$AppClassLoader@7852e922]
18:09:38.245 [main] DEBUG liquibase.servicelocator.DefaultPackageScanClassResolver - Loaded the class: class liquibase.datatype.DataTypeFactory in classloader: ClassRealm[plugin>org.liquibase:liquibase-maven-plugin:3.8.4, parent: sun.misc.Launcher$AppClassLoader@7852e922]
18:09:38.245 [main] DEBUG liquibase.servicelocator.DefaultPackageScanClassResolver - Loaded the class: class liquibase.datatype.core.NCharType in classloader: ClassRealm[plugin>org.liquibase:liquibase-maven-plugin:3.8.4, parent: sun.misc.Launcher$AppClassLoader@7852e922]

这完全破坏了阅读日志的任何更改。

我搜索了许多较早的问题,但由于 liquibase 在过去的版本中改变了它的日志记录方法 none 给定的方法有效。

除了真正清除以 [main] DEBUG 开头的内容外,我该怎么做才能使其静音?

这是相关的 pom 部分:

  <build>
    <plugins>
      <plugin>
         <groupId>org.liquibase</groupId>
         <artifactId>liquibase-maven-plugin</artifactId>
         <version>3.8.4</version>
         <configuration>
           <driver>oracle.jdbc.OracleDriver</driver>
           <url>${liquibase.url}</url>
           <username>${liquibase.username}</username>
           <password>${liquibase.password}</password>
           <changeLogFile>${changelogPath}/master.xml</changeLogFile>
           <promptOnNonLocalDatabase>false</promptOnNonLocalDatabase>
           <verbose>false</verbose> <!-- Al momento ignorata, prima o poi la sistemeranno -->
           <logging>INFO</logging> <!-- Al momento ignorata, prima o poi la sistemeranno -->
         </configuration>
      </plugin>
    </plugins>
  </build>

我们 运行 在 Datical 也对此感兴趣。这是我们的票务系统中的内容:

Apache Maven 中的日志记录框架在 3.1.x 之前的版本中被破坏;这导致日志记录非常冗长(因为你看不到任何你关心的东西,因为有太多噪音)。

liquibase-maven-plugin 与 Apache Maven 3.1.x 或更高版本配合使用效果最佳。 Datical 已通过 Apache Maven 3.6.3 认证。

要使用 Apache Maven 3.1.x 或更高版本更改 Liquibase Maven 日志级别,您需要设置一个环境变量,方法是在命令行上将其传递给 Liquibase Maven 或将其添加为环境变量。您不能使用任何版本的 Apache Maven 设置 liquibase 属性 来更改日志级别。

通过命令行传递日志级别

mvn liquibase:listLocks -Dorg.slf4j.simpleLogger.defaultLogLevel=DEBUG

设置环境变量

MAVEN_OPTS=-Dorg.slf4j.simpleLogger.defaultLogLevel=DEBUG