我使用Logback RollingFileAppender编写的2个日志文件。
第一个appender将所有内容记录到文件中并每天滚动它。 (每日日志文件) 第二个appender仅将错误记录到文件中并每秒滚动一次。 (每个例外的日志文件)
我有这两个问题的两个问题:
第一个问题是每日日志文件在应用程序启动期间锁定。因此,在应用程序启动期间,我无法重命名/删除日志文件。 (问题出现在每日追加者身上)
第二个问题是为每个应用程序启动生成一个空日志文件。 (问题出现在异常appender上)
有可能两个解决这两个问题吗?
以下是两个appender:
<!-- LOGFILE Ausgabe Appender -->
<appender name="LOGFILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- logfile taeglich wechseln -->
<fileNamePattern>C:/ProgramData/MyApp/Logs/MyApp_%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- max 45 files behalten -->
<maxHistory>45</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<!-- Exception Ausgabe Appender - Jeder ERROR wird in ein eigenes File geschrieben -->
<appender name="EXCEPTIONFILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- Nur ERROR Level Eintraege selektieren -->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<!-- ERROR Logging -->
<level>ERROR</level>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- logfile sekuendlich wechseln -->
<fileNamePattern>C:/ProgramData/MyApp/Logs/MyApp_Exception_%d{yyyy-MM-dd'_'HH-mm-ss}.log</fileNamePattern>
<!-- max 50 files behalten, ist aber nur fallback die die dateien nach dem versenden sowieso geloescht werden -->
<maxHistory>50</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS};%-5level;%msg%n</pattern>
</encoder>
</appender>
THX。