5

この回答は、ログが 7 日間保持されることを意味します。これは構成可能ですか?

このJava Ranch Pos t は、ファイルが決して削除されないことを意味します。

このサイトは、ログ ファイルが決して削除されないことにも同意します。

日次ログ ファイルに Apache Log4J DailyRollingFileAppender を使用しようとしている場合、保持するファイルの最大数を指定する必要がある場合があります。ローリングと同じように、RollingFileAppender は maxBackupIndex をサポートします。しかし、DailyRollingFileAppender を使用している場合、Log4j の現在のバージョン (Apache log4j 1.2.16) には古いログ ファイルを削除するメカニズムがありません。maxBackupIndex プロパティを追加するために、DailyRollingFileAppender の元のバージョンに小さな変更を加えようとしました。そのため、将来の使用に不要な古いログ ファイルをクリーンアップすることができます。

ソース

信頼できる回答が見つからず、ログが削除されたかどうかを確認するために 7 日間待ちたくありません。

4

1 に答える 1

3

Log4J の削除に関するこの投稿を参照してください。つまり、dailyRollingFileAppender はできないようです。しかし、おそらくLogbackへの切り替えを検討したいかもしれません。それは同じ人によって書かれ、あなたが探していることをすることができます.

次のアペンダーを使用して、30 日間の HTML ログを維持します。

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>Logs\logFile.html</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <!-- daily rollover -->
      <fileNamePattern>logFile.%d{yyyy-MM-dd}.html</fileNamePattern>

      <!-- keep 30 days' worth of history -->
      <maxHistory>30</maxHistory>
    </rollingPolicy>

    <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
    <charset>UTF-8</charset>
        <layout class="ch.qos.logback.classic.html.HTMLLayout">
            <pattern>%d{HH:mm:ss.SSS}%thread%level%logger%line%msg</pattern>
        </layout>           
    </encoder>
</appender>

マニュアルの関連セクションmaxHistoryには、次のように記載されています。

オプションの maxHistory プロパティは、保持するアーカイブ ファイルの最大数を制御し、古いファイルを削除します。たとえば、毎月のロールオーバーを指定し、maxHistory を 6 に設定すると、6 か月分のアーカイブ ファイルが保持され、6 か月より古いファイルは削除されます。古いアーカイブ ログ ファイルが削除されるので、ログ ファイルのアーカイブのために作成されたフォルダは、必要に応じて削除されることに注意してください。

Logback には、移行を支援するためにここで利用できる Log4J プロパティ トランスレータもあります。Log4Jからの切り替えに専念するマニュアルの章全体と同様に。

于 2012-12-13T17:19:38.770 に答える