クラウドスタック管理サーバーに保持されるログの数を制限しようとしています。 log4j 1.2を実行していて、最近「<param name="MaxBackupIndex" value="31"/>
"を私の設定(/etc/cloudstack/management/log4j-cloud.xml)に追加して、31個のログのみを保持します。
<appender name="FILE" class="org.Apache.log4j.rolling.RollingFileAppender">
<param name="Append" value="true"/>
<param name="Threshold" value="TRACE"/>
<rollingPolicy class="org.Apache.log4j.rolling.TimeBasedRollingPolicy">
<param name="FileNamePattern" value="/var/log/cloudstack/management/management-server.log.%d{yyyy-MM-dd}.gz"/>
<param name="ActiveFileName" value="/var/log/cloudstack/management/management-server.log"/>
<param name="MaxBackupIndex" value="31"/>
</rollingPolicy>
<layout class="org.Apache.log4j.EnhancedPatternLayout">
<param name="ConversionPattern" value="%d{ISO8601} %-5p [%c{1.}] (%t:%x) (logid:%X{logcontextid}) %m%n"/>
</layout>
</appender>
しかし、すべてのログはまだそこにあり、私はアイデアを使い果たしました。 log4jはそのアーカイブポリシーを古いログに適用しませんか?他に変更する必要があるものはありますか?任意の提案をいただければ幸いです。
まず、log4j1.2には 'rolling
'パッケージはありません(使用していることはわかっています;))。存在しないパッケージ内のクラスを参照すると、探しているクラスが本来あるべき場所に存在しないため、「ClassNotFoundExceptions」が発生する可能性があります。
また、MaxBackupIndexを#rollingPolicyから上に移動し、そのようにMaxFileSizeパラメーターを追加します。
<appender name="FILE" class="org.Apache.log4j.RollingFileAppender">
<param name="Append" value="true"/>
<param name="Threshold" value="TRACE"/>
<param name="MaxBackupIndex" value="31"/>
<param name="MaxFileSize" value="x" />
編集:
ローリングパッケージは、log4jのApache Extrasにあります。 https://logging.Apache.org/log4j/extras/ whisは、追加機能を保持する追加のjarファイルです。標準APIにはローリングパッケージがありません。