0

以下に示すように、ログファイルにタイムスタンプを追加したいと思います。

accesslogs.2012-10-31-02-39.log

DailyRollingFileAppenderを試してみたところ、タイムスタンプを追加できましたが、「.log」の後にタイムスタンプを追加すると、 accesslogs.log.2012-10-31-02-39 になり、 Maxsize 属性も DailyRollingFileAppender のミッションです。
タイムスタンプをログ ファイルに追加する他の方法はありますか。

以下は、log4j.xml のコード スニペットです。

    <appender name="roll" class="org.apache.log4j.DailyRollingFileAppender">
           <param name="DatePattern" value="'.'yyyy-MM-dd-hh-mm'.log'" />
           <param name="File" value="C:\\Users\\sharmag\\logsfile.log" />    
           <layout class="org.apache.log4j.PatternLayout"> 
              <param name="ConversionPattern" value="%d %-5p (%15F:%L) %3x - %m (%c)%n"/>
          </layout>
    </appender>

どんな助けでも大歓迎です。

ありがとう

4

1 に答える 1

2

箱から出してすぐに Log4J を使用してこれを行うことはできません。以下は、Log4J のソース コードの抜粋です。

String datedFilename = fileName+sdf.format(now);

これが、Log4J がファイル名を作成する方法です。日付オブジェクトをフォーマットし、それをファイル名に追加します。

残念ながら、そのDailyRollingFileAppender設計方法では、この動作をカスタマイズするために効率的にサブクラス化することはできないため、残念ながら、あなたの質問に対する答えは「いいえ」であると私は信じています。

(独自の実装を開発しない限りFileAppender)

編集済み(5か月後)...

Log4J Extras (Log4J コミュニティが提供) を使用すると、これを行うことができます。TimeBasedRollingPolicyを見てください。ただし、 とは異なるアペンダーを使用することになりDailyRollingFileAppenderます。

于 2012-11-01T03:05:41.173 に答える