log4j:TimeBasedRollingPolicyを使用してDailyRollingFileAppenderを使用して.gzファイルにログをローリングする

現在のシステムは期待どおりに動作しており、ログファイルは以下のロジックに従って1時間に1回ロールバックされます。

log4j.appender.oozie=org.apache.log4j.DailyRollingFileAppender
log4j.appender.oozie.DatePattern='.'yyyy-MM-dd-HH
log4j.appender.oozie.File=${oozie.log.dir}/oozie.log
log4j.appender.oozie.Append=true
log4j.appender.oozie.layout=org.apache.log4j.PatternLayout
log4j.appender.oozie.layout.ConversionPattern=%d{ISO8601} %5p %c{1}:%L - %m%n

私は、TimeBasedRollingPolicyを使用してRollingFileAppender(ファイルサイズに基づいてローリング)で圧縮ファイル(.gzまたは.zip)に直接ログファイルをローリングすることが可能であることを理解できます。私はDailyRollingFileAppender(時間ベースのローリング)を使用しており、その圧縮を達成したいと考えています。私は以下のようにプロパティを変更しました。しかし、それは動作しません。

log4j.appender.oozie=org.apache.log4j.DailyRollingFileAppender
log4j.appender.oozie.DatePattern='.'yyyy-MM-dd-HH
log4j.appender.oozie.File=${oozie.log.dir}/oozie.log
log4j.appender.oozie.Append=true
log4j.appender.oozie.RollingPolicy=org.apache.log4j.rolling.TimeBasedRollingPolicy
log4j.appender.oozie.RollingPolicy.FileNamePattern=foo.%d{yyyy-MM-dd-HH}.gz
log4j.appender.oozie.layout=org.apache.log4j.PatternLayout
log4j.appender.oozie.layout.ConversionPattern=%d{ISO8601} %5p %c{1}:%L - %m%n

どのポインタも高く評価されます。関連リンクがいくつかあります。

log4jでのRollingFileAppenderの設定

http://logging.apache。 org/log4j/companions/extras/apidocs/org/apache/log4j/rolling/TimeBasedRollingPolicy.html

9
その解決策を見つけましたか?私は同じを参照してください
追加された 著者 javagirl,

2 答え

私の驚きを許してください、しかし、あなたがそれを上に与えた正確なリンクで、受け入れられた答えで言う:

TimeBasedRollingPolicyはlog4j.propertiesではなくxmlでのみ構成できます。

構成をXML形式に書き直そうとしましたか?

2
追加された
ご回答ありがとうございます。私が投稿したリンクでは、「この問題はlog4j v1.2.16で修正されました」という応答の1つです。プロパティファイル経由でrollingPolicyを設定できるようになりました。issues.apache.org/bugzilla/show_bug.cgi ?id = 36384 "となります。私は大きな変更(すでに異なるロール間隔で複数のロガーを書き直す必要がある)であるため、XMLで書き直しを試みなかったので、プロパティファイル自体を使用してこれを達成しようとします。
追加された 著者 userkn87,

次のものを試してください、それは私のために働く:

log4j.rootLogger=CONSOLE,file


log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE..layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

log4j.appender.file=org.apache.log4j.rolling.RollingFileAppender
log4j.appender.file.Threshold=WARN
log4j.appender.file.Encoding=UTF-8

log4j.appender.file.File=/path to your logs/logs/log_file.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.RollingPolicy=org.apache.log4j.rolling.TimeBasedRollingPolicy
log4j.appender.file.RollingPolicy.FileNamePattern=/path to your                 logs/logs/log_file%d{yyyy-MM-dd-HH-mm-ss}.log
log4j.appender.file.layout.ConversionPattern=%d{[email protected]:mm:ss} %-5p (%13F:%L) %3x - %m%n
2
追加された
commons-logging-1.1.1(log4j.log4j:1.2.12)で動作しません。エラーはlog4jです:WARN org.apache.log4j.RollingFileAppenderのこのようなプロパティは[rollingPolicy]です。 log4j:WARN org.apache.log4j.RollingFileAppenderのそのようなプロパティ[datePattern]はありません。 log4j:WARN org.apache.log4j.RollingFileAppenderのそのようなプロパティ[datePattern]はありません。 log4j:WARN org.apache.log4j.RollingFileAppenderのそのようなプロパティ[rollingPolicy]はありません。
追加された 著者 linuxatico,