Loggingについて

http://d.hatena.ne.jp/kkawa/20081030/p1

おいらも最初はそう思いました。なぜ簡易メソッドはメッセージしかよべないのかと。


でも、ロギングAPIって生で使うことはなくて、各種プロダクトで用意するラッピングするロギングを使うと思います。


以前のFileReaderが使いにくいとかいう議論と同じでJavaは小API主義で生APIを用意しているだけです。使いやすくしたければラッパクラスを用意すればいい。Win32API直アクセスが使いにくいよ!といってるのと同じです。

java.util.Loggingを利用したラッパクラスはみんな作ってると思いますので、今のままでもさほど困ることは誰もいないと思います。標準APIに必要ならばラップされた簡易アクセス用のクラスを追加で用意するほうが従来のユーザーの妨げにならないでいいかもしれません。

エラーのログを出したい場合staticインポートを用意したりすると、

try{
・・・

}catch(Exception ex){
  error(ex , "えらーですよ[%s]  errorNo:%d" , "hoge", 123);
}

こうなりますよね。特に問題になるようには見えません。クラスも1個だけでいいですし、標準APIだけに依存しますし問題はないでしょう。

こうなるログライブラリはどこの小規模なプロダクトでも用意していると思います。ここはおいらの趣味でいわゆるprintfを使えるようにしていますけど、普通に「{0}」とかを渡しているところのほうが多いかもしれませんね。おいらは16進数で表示させたいとか桁そろえたいとかありましたので、好き勝手にいじれるほうを用意しました。規模が大きいプロダクトの場合は変えたほうがいいでしょう。