java - liquibase-maven-插件日志级别

标签 java maven liquibase

我在 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 在过去的版本中更改了其日志记录方法,因此所有方法都不起作用。

除了实际删除以 [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

关于java - liquibase-maven-插件日志级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59865054/

相关文章:

java - 液碱 : link main yaml changelog from test

java - 在 jmeter 中使用 Beanshell 验证 JSON 响应

java - 如何在接收启动后 20 分钟执行服务?

windows - maven 301 永久移动

mysql - 如何在一种类型的数据库上运行 Liquibase 变更集,然后让 LIquibase 忽略另一种类型的变更集?

sql - 如何在 Liquibase 中实现 SQL 语句(插入多行)

java - Android:如何防止开发人员选项在下次启动时重置?

java - http中的分块和流有什么区别?

java - 无法使用 dropwizard-core 类

maven - izpack-maven-plugin 默认情况下不包含 native 库