Java 液化日志级别更改
我使用来自的代码在DB上运行更新。它可以工作,但会产生大量日志。我尝试使用更改Liquibase的日志级别Java 液化日志级别更改,java,logging,liquibase,Java,Logging,Liquibase,我使用来自的代码在DB上运行更新。它可以工作,但会产生大量日志。我尝试使用更改Liquibase的日志级别 DefaultLoggerConfiguration defaultLoggerConfiguration = new DefaultLoggerConfiguration(); defaultLoggerConfiguration.setLogLevel("off"); 但这没用 pom.xml <properties> <mockito.versio
DefaultLoggerConfiguration defaultLoggerConfiguration = new DefaultLoggerConfiguration();
defaultLoggerConfiguration.setLogLevel("off");
但这没用
pom.xml
<properties>
<mockito.version>3.3.3</mockito.version>
<junit.version>5.6.2</junit.version>
<mysql.connector.version>8.0.20</mysql.connector.version>
<liquibase.version>3.9.0</liquibase.version>
<snakeyaml.version>1.26</snakeyaml.version>
</properties>
<dependencies>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>${mockito.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.connector.version}</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-core</artifactId>
<version>${liquibase.version}</version>
</dependency>
<dependency>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
<version>${snakeyaml.version}</version>
</dependency>
</dependencies>
3.3.3
5.6.2
8.0.20
3.9.0
1.26
org.mockito
我认为您正在尝试从Java代码配置Liquibase日志级别,而不是从Maven或类似的东西
您的代码不起作用,因为您正在创建一个DefaultLoggerConfiguration
对象并设置一个属性,但没有使其可用于液化。它只是一个随机的Java对象,一旦defaultLoggerConfiguration
超出范围,它就会消失
看起来正确的方法是让Liquibase为您提供对其配置的引用,然后使用该对象设置日志级别
LiquibaseConfiguration.getInstance()
.getConfiguration(DefaultLoggerConfiguration.class)
.setLogLevel("off");
更新
好吧,看来这是完全错误的。酒类采集者显然是在转移注意力。以前可能有一种配置它的方法,但现在它只是无条件地委托给SLF4J,在GitHub上的示例中,SLF4J使用Logback作为实际的记录器
通过添加一个包含以下内容的文件src/main/resources/logback.xml
,我消除了示例中除了信息之外的所有消息
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<logger name="liquibase" level="info"/>
<root level="debug">
<appender-ref ref="STDOUT" />
</root>
</configuration>
有关如何配置回登录的详细信息。将logback.xml
文件放到类路径中是一种配置方法,但您也可以使用其他策略。关于如何控制Liquibase中的日志级别,存在一些问题。你尝试过这些解决方案吗?谢谢你的提问。我没有在网站上找到我的问题的答案。谢谢你的帮助,但它不处理日志。此外,我还编写了``LiquibaseConfiguration.getInstance().getConfiguration(DefaultLoggerConfiguration.class).setLogLevel(“off”);System.out.println(liquibasecConfiguration.getInstance().getConfiguration(DefaultLoggerConfiguration.class).getLogLevel());`我在控制台里玩了很多游戏,还玩了很多logsOkay游戏。那么,不知何故,日志记录并没有按照您认为的方式工作。您是否尝试过设置系统属性liquibase.logging
?如果您可以编写最简单的程序(a)初始化liquibase,然后(b)执行某些liquibase操作以生成不需要的日志消息,我将查看它。产生超过2400条日志行