Logback 日志文件为空

Logback log file empty

我需要更改什么才能使用 Logback 将日志写入日志文件?

   dependencies {
           implementation 'ch.qos.logback:logback-classic:1.2.3',
                         'ch.qos.logback:logback-core:1.2.3'
           api 'org.slf4j:slf4j-api:1.7.30'
                 }



 <configuration debug="true">
        <appender name="FILE" class ="ch.qos.logback.core.FileAppender">
          <file>logs\logfile.log</file>
          <append>true</append>
          <immediateFlush>false</immediateFlush>
          <encoder>
            <pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
           </encoder>
        </appender>
    
        <appender name="STDOUT"
        class="ch.qos.logback.core.ConsoleAppender">
        <Target>System.out</Target>
          <encoder>
             <pattern> .....</pattern>
           </encoder>
        </appender>
    
        <root level="DEBUG">
         <appender-ref ref="FILE"/>
         <appender-ref ref="STDOUT"/>
        </root>
  </configuration>

在Java Class:

 private static final Logger log = LoggerFactory.getLogger(MyClass.class);
    public static void main(String[] args){
    log.debug("hello");
    }

文件 logfile.log 在 logs 文件夹下创建,但它是空的,控制台确实显示日志。

可能您错过了 logback-core 依赖项。

<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-core</artifactId>
    <version>1.2.10</version>
</dependency>

dependencies {
    ...
    implementation 'ch.qos.logback:logback-core:1.2.10'
    ...
}

除了你已经拥有的另外两个。

其他要做的就是更新每个依赖的最新版本,看看问题是否仍然存在。

参考:https://sematext.com/blog/logback-tutorial/ or https://www.baeldung.com/logback

缺少 logback-core 的添加依赖项,而且 immediateFlush 应该为 true 或简单地被删除。