5

一般的な Java ロギング フレームワークのいずれかで、ローリング ファイル アペンダーがサポートされていますか? ローリングファイルアペンダーとcronを使用できることは知っていますが、両方を実行できるアペンダーを誰かが知っているかどうか疑問に思っていました。

4

4 に答える 4

3

Logback の古典的な RollingFileAppender は、これ以上のものを提供します。マニュアルの設定例 ( http://logback.qos.ch/manual/appenders.html#onRollingPolicies )

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

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

    <encoder>
      <pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
    </encoder>
  </appender> 

  <root level="DEBUG">
    <appender-ref ref="FILE" />
  </root>
</configuration>

これにより、毎日のロールオーバーと 30 日間の履歴が提供されます。これを logback.xml、またはテスト ツリー用の logback-test.xml というファイルに配置し、クラスパスに配置します。

于 2013-07-29T23:02:19.657 に答える
1

実際、Log4J を使用している場合は、次のアペンダーを使用できます。

クラス全体をダウンロードするだけです(はい、上記のリンクのクラスのコード)、プロジェクトに含めます(必要な場所で、プロジェクト内で一致するようにパッケージを変更できます) 、次に log4j.properties ファイルを次のように構成します (このファイルは、src/main/resources フォルダーなどのクラスパスにある必要があります)。

# Define the root logger with appender file
log = log
log4j.rootLogger = TRACE, FILE

# Define the logical path where you put the class you downloaded from "blog.kimb3r.com" link (above)
log4j.appender.FILE=com.yourapp.yourpackage.log.CustodianDailyRollingFileAppender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n
log4j.appender.FILE.File=${log}/yourlogfile.log
log4j.appender.FILE.DatePattern='.'yyyy-MM-dd
# How many files you want to keep?, in this case I'm having just 15 days of files, one file per day:
log4j.appender.FILE.MaxNumberOfDays=15
# If True, the older files will be compressed into a zip file (*which will save you a lot of space on the server*)
log4j.appender.FILE.CompressBackups=true

これに加えて、log4j への依存関係を次のように pom に追加するだけです。

<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>

以上です!

于 2015-04-30T15:06:55.780 に答える
0

これを見てみませんか?

おそらく、ログを保持する最大日数を設定できます。

log4j.rootLogger=INFO, FILE
log4j.appender.FILE=ca.justtechnologies.utils.logging.CustodianDailyRollingFileAppender log4j.appender.FILE.layout=org.apache.log4j.PatternLayout log4j.appender.FILE.layout.ConversionPattern=%d{ MMM dd yyyy HH:mm:ss,SSS} [%t] %-5p %l - %m%n log4j.appender.FILE.File=/var/log/web-apps/Dashboard.log log4j.appender.FILE .DatePattern='.'yyyy-MM-dd

log4j.appender.FILE.MaxNumberOfDays=14

log4j.appender.FILE.CompressBackups=true

于 2013-07-29T18:58:11.367 に答える