logbackを使うこの広告は、90日以上更新していないブログに表示しています。logback今まではJavaでログ出力といえば、log4jだったが、最近ではlogbackも使いやすくなっている。[追記]logbackはintra-martで採用されたりしているので既にかなりメジャーであると言える。http://www.intra-mart.jp/apilist/v70/doclet/im_commons/jp/co/intra_mart/common/platform/log/rolling/ExtendedTimeBasedRollingPolicy.html[追記-終]logbackでログをファイル出力する場合は下記のAppenderクラスを使う。FileAppenderを継承し、ログローテーションを提供する。logbackではログローテーションを実現する際に、RollingPolicyクラスとTriggeringPolicyクラスというものを使うことになる。簡単にいうと、RollingPolicyはローテ時のバックアップファイル名についての規定を提供。TriggeringPolicyはログローテーションのローテタイミングについての規定と機能を提供、という感じ。ローテーションを実現するにはRollingPolicyとTriggeringPolicyの2つを定義する必要がありそう、とここでイメージできる。主なRollingPolicyクラスは以下TimeBasedRollingPolicy日次ローテ、毎時ローテなどを提供する。TimeBasedRollingPolicyはTriggeringPolicyとRollingPolicyが同居する。(つまり定義一つでOK)FixedWindowRollingPolicyバックアップファイル名をlog.1,log.2の形で作成できる。別にSizeBasedTriggeringPolicyを定義する必要がある。SizeAndTimeBasedFNATP日時ローテとサイズローテを組み合わせたい場合に使う。使いたい場合は、TimeBasedRollingPolicyの中に組み込む形で定義するようだ。(サンプル有り)主なTriggeringPolicyクラスは以下SizeBasedTriggeringPolicy言わずもがなサイズローテーション用TriggeringPolicy。FixedWindowRollingPolicyと併用。logbackがlog4jより良い点として、"複数のJVMによる同じログファイルへの書き込みをサポートしている"というところだろう。FileAppenderに"prudent"(boolean)という設定項目がある。デフォルトではfalseだが、trueにすることで、複数プロセスで同じログファイルへの出力を保証するモードを利用できる。log4jでは複数プロセス(マルチJVM)で同じログファイルへ出力するとログが消えるなどしてしまう。独自のFileAppender#safeWriteメソッドを使う。safeWriteはこれだ。}}つまりFileChannelで排他ロックを取りながらログ出力をする。処理速度にいちゃもんが付きそうだが、正確にログが取りたい場合は使いたいところだ。logbackはslf4jというライブラリとセットで利用する。ほとんどslf4jを使うことを意識する必要はないが、introductionを参照して理解しておくと良い。日本語サイトでは、ここもslf4jのロガー実装切替アルゴリズムが理解できる。フ...2011-08-24logbackで日次ログローテーションするlogbackで日次ローテーションをする時のサンプル。7参加グループプログラミングはてなブログをはじめよう!clash_m45さんは、はてなブログを使っています。ブログを報告する引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。