Java logback会在每次程序重启时创建新文件

Java logback会在每次程序重启时创建新文件,java,scala,logback,Java,Scala,Logback,我有这样的logback.xmp conf: <configuration scan="true" scanPeriod="10 seconds" > <appender name="FILE" class="ch.qos.logback.core.FileAppender"> <file>${application.home:-.}/logs/application.log</file> <filter class="ch

我有这样的logback.xmp conf:

<configuration scan="true" scanPeriod="10 seconds" >

<appender name="FILE" class="ch.qos.logback.core.FileAppender">
    <file>${application.home:-.}/logs/application.log</file>
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
        <level>DEBUG</level>
    </filter>
    <encoder>
        <pattern>[%d{HH:mm:ss}] [%level] - %message%n%xException</pattern>
    </encoder>
</appender>

<logger name="play" level="WARN"/>
<logger name="application" level="DEBUG"/>

<logger name="org.jdbcdslog.ConnectionLogger" level="OFF"/> <!-- Won' log connections -->
<logger name="org.jdbcdslog.StatementLogger" level="INFO"/> <!-- Will log all statements -->
<logger name="org.jdbcdslog.ResultSetLogger" level="OFF"/> <!-- Won' log result sets -->

<root level="WARN">
    <appender-ref ref="FILE"/>
</root>

</configuration>

${application.home:-.}/logs/application.log
调试
[%d{HH:mm:ss}][%level]-%message%n%xException

每次我重新启动我的程序,它都会创建新的日志文件,但以我的方式,我希望继续将日志写入旧的日志文件中。那么,问题出在哪里呢?

Logback包含一个允许多个JVM登录到同一个日志文件的功能。可以通过将FileAppender的“审慎”属性设置为true来启用此功能

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
         <!-- Support multiple-JVM writing to the same log file -->
         <prudent>true</prudent>
</appender>

真的

RollingFileAppender扩展了FileAppender,使其能够滚动日志文件。

您可能需要添加

我认为您需要使用
append
属性

追加或截断文件?此变量的默认值为true,这意味着默认情况下FileAppender将追加到现有文件,而不是截断它

例如:

<appender name="FILE" class="ch.qos.logback.core.FileAppender">
    <file>${application.home:-.}/logs/application.log</file>
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
        <level>DEBUG</level>
    </filter>
    <encoder>
        <pattern>[%d{HH:mm:ss}] [%level] - %message%n%xException</pattern>
    </encoder>
    <append>true</append>
</appender>
。。。而当前版本的
append
属性默认为
true
,不清楚为什么需要这样做1

请注意,将
prudent
设置为
true
也会将
append
设置为
true



1-除非。。。也许。。。您遇到了Windows文件锁定问题?

对此没有帮助。我想这里还有其他问题。你忽略的东西;e、 g.重启时删除旧日志文件。无论如何,我认为我们需要一个MCVE来帮助我们了解实际发生的事情。这没有帮助吗?你使用的是什么版本的logback?