JBoss EAP 時間とサイズによるログローテーション

こんにちは。平田です。

いつの間にかWildfly / JBoss EAPに、時間とサイズの両方でローテーションするログハンドラが追加されていたので試してみました。

JBoss EAPのログ管理機構は、jboss-logmanagerによって提供されます。この中にPeriodicSizeRotatingHandler.javaというハンドラがあり、時間とサイズの両方でローテーションできます。

EAP 6.3以前はカスタムハンドラとして、6.4以降はPeriodic Size Rotating Handlerという組み込みハンドラとして使用します。ここでは7.0を使います。

EAPを起動した状態で、以下のスクリプトをCLIで流します。

/subsystem=logging/periodic-size-rotating-file-handler=FILE2:add(file={relative-to="jboss.server.log.dir", path="server.periodic-size-rotating.log"}, append=true, suffix=".yyyy-MM-dd_HHmm", rotate-size=1024, max-backup-index=3)
/subsystem=logging/root-logger=ROOT:write-attribute(name=handlers, value=["CONSOLE", "FILE", "FILE2"]

ログを流すと、1024バイトを超えたとき、1分おきにローテーションします。

server.periodic-size-rotating.log
server.periodic-size-rotating.log.2016-08-25_1218
server.periodic-size-rotating.log.2016-08-25_1218.1
server.periodic-size-rotating.log.2016-08-25_1219
server.periodic-size-rotating.log.2016-08-25_1219.1
server.periodic-size-rotating.log.2016-08-25_1219.2
server.periodic-size-rotating.log.2016-08-25_1219.3
server.periodic-size-rotating.log.2016-08-25_1220
server.periodic-size-rotating.log.2016-08-25_1220.1
server.periodic-size-rotating.log.2016-08-25_1220.2
server.periodic-size-rotating.log.2016-08-25_1220.3
server.periodic-size-rotating.log.2016-08-25_1221
server.periodic-size-rotating.log.2016-08-25_1221.1
server.periodic-size-rotating.log.2016-08-25_1221.2
server.periodic-size-rotating.log.2016-08-25_1221.3
server.periodic-size-rotating.log.2016-08-25_1222.1
server.periodic-size-rotating.log.2016-08-25_1222.2

ちなみに時間でローテーションしつつ、max-backup-indexを超えた時に削除してくれるかなぁ、と思いきやダメでした。あくまでサイズローテーションの添字の最大値のようです。

 

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です