兎家のなにか

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

スポンサー広告 |

log4jのこと

たまにしかいじらないから毎回忘れてて、毎回調べるハメになるlog4jについて

自分用のメモです

■基本クラス3つ
 Logger、Appender、Layout

■ログレベル6種
 fatal、error、warn、info、debug、trace

■ロガーの継承
 全てのLoggerはRootLoggerを継承する
 com.minto(以下L1)ってロガーとcom.minto.test(以下L2)ってロガー作ったら
 L2はL1を継承するっぽい

 Appenderを、rootLoggerでA1、L1でA2、L2でA3とし、
 com.minto.test.LogTestクラスでログ出したらA1、A2、A3の3つが出力された
 L1とL2の二つのロガーが生成されるのであればA1が2つ出力されるはず
 つまり、L2はL1を継承している
 (または二つ生成されるが内部的にA1が2回でないように制御されている)
 どちらにせよ「上手いこと動く」ということで納得

以下、設定ファイルの書き方
ただし、XMLではなくProperties

■ルートLoggerの設定
 log4j.rootLogger=info,stdout,file
 →info以上を出力、stdoutとfileという名前のAppenderを使用

■Loggerの設定
 log4j.logger.[カテゴリ名]=info,a1
 →ルートLoggerと同じ

■カテゴリ名について
 comというカテゴリ名なら、comパッケージ配下の全クラスが対象
 com.mintoというカテゴリ名なら、com.mintoパッケージ配下の全クラスが対象
 com.minto.LogTestClassというカテゴリ名なら、com.minto.LogTestClassというクラスが対象
 ただし、com.minto.LogTestClassというパッケージが存在する場合、その配下の全クラスも対象

 正しくは、ロガー生成時に渡すクラス名に一致するロガーが生成される
 完全一致ではなく、前方一致で、最も一致する文字数が多いロガーが選択される模様
 渡すクラス名はパッケージも含めたクラス名
 (というかClassを渡すのが普通、内部でClass.getName()してる)

 ちなみに、生成時にクラス名ではなく、任意の文字列を渡すことも可能
 でも混乱するだけだと思うから普通はしないよね

■Appenderの設定
 log4j.appender.[Appender名] = [Appenderクラス名]

 Appenderクラス名は色々あるけど、大抵は以下

  org.apache.log4j.ConsoleAppender
  org.apache.log4j.FileAppender
  org.apache.log4j.DailyRollingFileAppender

■Appender共通
 log4j.appender.[Appender名].Threshold = warn

 このAppenderはwarn以上を出力するという設定
 Loggerがinfo以上で、Appenderがwarn以上ならwarn以上が出る
 Loggerがerror以上で、Appenderがwarn以上ならerror以上が出る

■ConsoleAppender
 標準出力に出力
  log4j.appender.[Appender名].Target=System.out
 標準エラーに出力
  log4j.appender.[Appender名].Target=System.err

■FileAppender
 log4j.appender.[Appender名].File = log/minto.log
 log4j.appender.[Appender名].Append = false

■DailyRollingFileAppender
 log4j.appender.[Appender名].File = log/daily/minto.log
 log4j.appender.[Appender名].DatePattern='.'yyyy-MM-dd-HH-mm

 上記設定だと1分ごとにバックアップ作成して新規ファイルになる
 ファイル名は「minto.log.2009-02-10-18-13」とか

■Layoutの設定
 大体こんな感じになるかと
 log4j.appender.[Appender名].layout = org.apache.log4j.PatternLayout
 log4j.appender.[Appender名].layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} %-5p [%c] %m%n

 %d 日付
 %p ログレベル
 %c カテゴリ名
 %m メッセージ
 %n 改行
 -5 左詰5桁保障(右側にスペースでパディング)

 %C クラス名

 %cと%Cの違い
 %cはロガー生成時に渡したクラス名
 %Cはロガーを使ってログを出力したクラス名
 →Aクラスで生成したロガーをBクラスに渡して出力したら%cはA、%CはBとなる

■フィルターについて
 Appenderにフィルター機能があるらしい
 warn以上じゃなくて、warnだけ出力とか色々出来るらしい
 ただし、XMLじゃないと使えないとのこと


あとワイルドローズカードが出ましたよっと
スポンサーサイト
SEメモ | コメント:0 |

めずらしくGvのこと

公開したつもりが下書きのままだった・・・

さて、新砦は初期のGvみたいで面白かったですねぇ

とりあえず考えるのはガディでしょうか

スキルを使わないトール剣ガディってことですよね?
通常攻撃ってことは完全回避、カアヒが活きる
Flee286で95%回避だけど、囲まれてダメ
HP152kってことは506k食らえば反射で倒せるわけですがパラ何人分でしょう
運剣2+モリガンセット+ワイルドローズで完全回避73.2
金剛で2・3秒

ちょっと解らなかったんだけど、常時エスクかかってたのかな?
かかってない状態であれだったら、エスクかけたらまさに無双

ロキ上でもカアヒが発動するならば金剛+カアヒで耐えてもらってる間に
全員で突撃するのが良策でしょうか。
発動しないなら、LKパラが数人同時突撃してある程度引っ張ってから全員で突撃か

旗は左から
守護石、第一前、第一後、第二前、階段、第三前、中央(第二後)、各前左、各前右、?
って感じで覚えました

前回は入り口から抜けた敵は追わなかったので、
次回は敵を追っていって、守護石が壊されるところを観察しようかな
RO | コメント:2 |

第2子出産

10月28日 無事に女児を出産しました♪

出産予定日は11月14日。私の場合は帝王切開だったので早めにということで、、、、
10月30日に手術が決まってました★

出産準備も前日にすればいいやと思い何もしておらず・・・・
日々近づいてくる手術に怖さと誕生の喜びを感じならが生活してました、、、

10月28日
少し背中とおなかが痛い、、、なんだろう?ちょっと疲れたのかなと思ってました
息子を眠りにつかせて深夜0時・・・・・・
第2子出産…の続きを読む
| コメント:2 |
| HOME | NEXT
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。