Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 液化日志级别更改_Java_Logging_Liquibase - Fatal编程技术网

Java 液化日志级别更改

Java 液化日志级别更改,java,logging,liquibase,Java,Logging,Liquibase,我使用来自的代码在DB上运行更新。它可以工作,但会产生大量日志。我尝试使用更改Liquibase的日志级别 DefaultLoggerConfiguration defaultLoggerConfiguration = new DefaultLoggerConfiguration(); defaultLoggerConfiguration.setLogLevel("off"); 但这没用 pom.xml <properties> <mockito.versio

我使用来自的代码在DB上运行更新。它可以工作,但会产生大量日志。我尝试使用更改Liquibase的日志级别

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条日志行