我有这样的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>
每次我重新启动编时,它都会创建一个新的日志文件,但是以我的方式,我想继续将日志写入旧的日志文件。那是什么问题呢?
答案 0 :(得分:0)
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的功能,可以翻转日志文件。
答案 1 :(得分:0)
您可能想在<append>true</append>
标记中添加<appender>
。默认情况下应该为true,但让我们检查一下。
文档为here。
答案 2 :(得分:0)
我认为您需要使用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>
但是,由于(根据javadoc ...和当前版本的source code),append
属性默认为true
,因此不清楚为什么需要为此 1 。
请注意,将prudent
设置为true
也会将append
设置为true
。
1-除非...也许...您正在遇到Windows文件锁定问题?