1. 無料アクセス解析

crossroad's Blog

Javaを中心にした技術ネタなど。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告

Log4Jをラッパクラスで使用した場合の、ログ出力されるクラス名

Log4J や Commons Logging を利用してログ出力を行なう場合、
org.apache.log4j.Loggerや、org.apache.commons.logging.Log を
そのまま使用するのではなく、ラッパクラスで包んで使用したい
と言う事が良くあります。

MyLog


public class MyLog {

  private final Logger log = Logger.getLog("hoge");

  public void debug(Object message) {
    log.debug(message);
  }
       :
}

この実装で問題なのは、ログに出力されるクラス名です。

例えば、log4j.xmlで。。。

<appender ...>
       :
  <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern" value="%d %-5p [%t] (%F:%L) - %m%n"/>
  </layout>
</appender>

のようなアペンダを設定しておくと、ログには

2006-09-05 20:28:08,072 DEBUG [main] (MyLog.java:12) - メッセージ

のように出力されます。
ログに出力されるクラス名が、"ログを出力したクラス名"ではなく、
"ログのラッパクラス名"が出力されてしまっています。
これでは、どのクラスが出力したログなのかがわかりません。


クラス名を"ログを出力したクラス名"にする為には、
org.apache.log4j.Logger#log(String, Priority, Object, Throwable)を使用します。
このメソッドの第1引数に、ログのラッパクラス名を指定することで、
"ログを出力したクラス名"が出力されるようになります。

public class MyLog {

  private static final String FQCN = "MyLog.java";
  private final Logger log = Logger.getLog("hoge");

  public void debug(Object message) {
    /* ログのラッパクラス名を指定する */
    log.log(FQCN, Level.DEBUG, message, null);

  }
        :
}

この方法には1つ制約があって、Commons Loggingでは実現できません。
Commons LoggingのLogインターフェースには、上記のようなラッパクラス名(FQCN)
を引数に取るメソッドが無いからです。


関連記事
スポンサーサイト

テーマ:JAVA - ジャンル:コンピュータ

  1. 2006/09/05(火) 20:44:24|
  2. ソフトウェア開発 Java
  3. | トラックバック:0
  4. | コメント:0
<<VSSにはドットディレクトリが使えない | ホーム | Subversionでファイルのロックを強制する>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURLはこちら
http://bagineer.blog59.fc2.com/tb.php/34-2f181485
この記事にトラックバックする(FC2ブログユーザー)

プロフィール

crossroad

Author:crossroad
関西在住。男。
フリーランスのソフトウェアエンジニア。
エレキベース(Rock&Roll)とお酒が好物でございます。

カテゴリー

タグリスト

Java F1 フリーランス ベーシスト HARRY TheStreetSliders iPhone FX お酒 Seasar Maven eclipse Wicket マイホーム 野球 プロジェクトファシリテーション Rails Ruby UML お店 ソフトウェア Tomcat S2Flex2 jsf Teeda Eclipse タグライブラリ ajax タスク europa mylyn trac 

ブログ内検索

最近の記事

最近のコメント

最近のトラックバック

カレンダー

04 | 2017/05 | 06
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 - - -

月別アーカイブ

全ての記事を表示する

全ての記事を表示する

Twitter


RSSフィード

リンク

このブログをリンクに追加する

アクセスカウンタ

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