Logback RollingFileAppender:不要锁定日志文件/不要创建空日志文件

时间:2017-03-10 16:15:56

标签: java log4j logback

我使用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。

0 个答案:

没有答案