category: Java
DATE : 2006/04/15 (Sat)
DATE : 2006/04/15 (Sat)
(前回の記事)
ログの生成が重い場合
これでログが出力できるようになりました。
しかし、出力するログのレベルが info 以上で次のような場合を考えてみます。
public void execute(int a) {
log.trace("引数" + a + "で execute 起動");
}
Log#trace(String) は実行されますが、出力するログレベルが info 未満なので、ログには出力されません。すると、文字列の連結処理「"引数" + a + "で execute 起動"」が無駄になってしまいます。
最近のマシンは性能が良いので、上のように無駄になる処理があっても実行速度には全くと言っていいほど影響しません。
しかし、もし明らかに影響を与えているような処理があれば、次の方法で重い処理を回避できます。
public void execute(int a) {
if (log.isTraceEnabled()) {
log.trace("引数" + a + "で execute 起動");
}
}
Log#isTraceEnabled() によって、trace のログが出力される状況であれば true 、出力されない状況であれば false が得られます。
このような、あるレベルのログが出力されるかどうかを確認するメソッドもレベルごとに用意されています。例えば、 debug レベルであれば次のようになります。
public void execute(int a) {
if (log.isDebugEnabled()) {
log.debug("引数" + a + "で execute 起動");
}
}
(つづきます)
PR
●この記事にコメントする
忍者ブログ [PR]