shobotakuro 2012-08-29 02:11:55

[Java] log4j殺し このエントリーをはてなブックマークに追加

投稿者からのアピールポイント

Log4jとかのロガーでの出力処理をラップしただけのクラスが用意されてて、それでログを吐きます。

  • log4j.xml等の設定で可能な、カテゴリによるフィルタができません。ログが全部出るか、全部出ないか。
  • 行番号を出力させても、全部ラップしたクラスの行番号になります。

など、Log4jなどに用意された便利な機能が色々使えず死ねばいいのに。

public class Hoge {

    public void foo(){
        HogeHoge obj = new HogeHoge();

        LogUtil.debug("HogeHoge実行前");
        obj.execute();
        LogUtil.debug("HogeHoge実行後");
          :
          :
    }
}

public class HogeHoge {
    public void execute(){
        LogUtil.debug("実行!");
        :
        :
    }
}


public class LogUtil {

    /** Logger */
    private static final Logger logger = Logger.getLogger(LogUtil.class);
    
    /**
     * デバッグレベルのログを出力します
     * @param message メッセージ
     */
    public static void debug(String message){
    	logger.debug(message);
    }
    :
    :
}

使い方ヒント: 「これは臭う」という行を見付けたら、各行のsmellをクリックしてマーキングしておきましょう(要Twitter OAuth認証)

コメント(7)

#2 shobotakuro 2012-08-29 02:33:09  

おそらく、VB6のDebug.printとかをイメージして作ったのではないかと想像してます。

物臭君が、「クラス作ったらいちいち『private static final Logger logger = Logger.getLogger(....);』とか書くの面倒臭くね?」と思い至った可能性もあります(笑)

#4 InternalServerE 2012-08-29 14:44:35  

機能を作る側と使う側、という観点に立てば、使う側が余計な使い方をしないよう、機能に意図的な制限を付けるのはよくある話で。
実際、アプリログに限って言うなら、機能開発者側にはログレベル程度しか指定の自由度を与えない、っていうポリシーのもと、こういう設計をするケースはよくありまっせ。
目的次第。

#5 InternalServerE 2012-08-30 11:05:09  

あれ、一日経って読み返すと自分のコメントなのにしっくり来ない。 例えて言うなら、いくらインターネットが応用利いて便利だからって、子供に使わすときはコンテンツフィルタ入れるよね、ってのに近いだろうか。
業務機能開発者がもれなく実装面で「大人」だったら、誰も苦労はしないんだけども。

#6 math_neko 2012-08-31 07:08:47  

Hoge とか HogeHoge の log を取りたいんだろうけど、どう見ても LogUtil の log 取ってますね…何がしたいんだろう…。

コメント投稿には、twitter認証が必要です。

Twitter認証

このウンコードに臭った人は、こちらのウンコードにも臭ってます

[Java] フルHD推奨。

このエントリーをはてなブックマークに追加

画面の左側がわりと無駄な気がします。

public int hoge(){
    int result = 0;
...

鑑賞する »

[Java] スベテカンスウ

このエントリーをはてなブックマークに追加

何でもやってくれる関数って、便利ですよね...

class Processor
{
	public bool process...

鑑賞する »

[その他] HOW TO ABC..

このエントリーをはてなブックマークに追加

実際にあった某システムの超重要なマスター...

create table item_master (
 A varchar(2...

鑑賞する »