我在 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/