1

ログを含む古いファイルのみをアーカイブすることは可能ですか?

たとえば、ログをテキストとして 14 日間保存してからアーカイブする必要がありますか?

現在使用されているアペンダー:

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
  <file>../log/mylog.log</file>
  <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
    <fileNamePattern>../log/mylog.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
    <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
      <maxFileSize>50MB</maxFileSize>
    </timeBasedFileNamingAndTriggeringPolicy>
    <maxHistory>50</maxHistory>
  </rollingPolicy>

  <encoder>
    <pattern>%d{yyyy.MM.dd HH:mm:ss} %-5level %logger{36} - %msg%n</pattern>
  </encoder>

</appender>

彼は、変更ログ ファイルの直後にファイルをアーカイブします。

slf4j-1.7.2 / ログバック-1.0.9

4

1 に答える 1

2

ロールオーバーされたログ ファイルは、logback のアーカイブされたログ ファイルのエイリアスであるため、ローリングとはアーカイブを意味します。

ログをテキストとして 14 日間保存してからアーカイブする必要がある

次に、ローリング ポリシーで最大ファイル制限を作成しないでください。ただ、テキストにする必要はないと思います。私の知る限り、logback はログを .gz 形式にアーカイブします。一連のコマンドを使用して、これらのログを .gz 形式で直接確認できます。たとえば、zcat、zgrep、less を直接使用して、gz 形式のログを確認できます。

ディレクトリから別の場所に 14 日間のログを移動する簡単なシェル プログラムを作成できます (これが実際のアーカイブです)。そのシェルは、cron ジョブを設定して 1 日に 1 回実行するだけで済みます。

于 2013-02-15T03:41:39.043 に答える