
「commons」の「Logging」を使用し検証しています。
下記のソースで、「log.isDebugEnabled()」がTRUEとならず
デバックログが出力されません。
他の「log.fatal」などの出力は問題ありません。
別ファイルに設定などが必要でしょうか?。
アドバイスお願いします。
---------------------------------------------
import org.apache.commons.logging.*;
public class LogTest {
//ログインスタンスを取得
public static Log log = LogFactory.getLog(LogTest.class);
/**
* @param args
*/
public static void main(String[] args) {
// 致命的なエラーの出力
log.fatal("fatalメッセージ");
// 通常のエラーの出力
log.error("errorメッセージ");
// 警告の出力
log.warn("warnメッセージ");
// 情報の出力
log.info("infoメッセージ");
// デバッグ情報の出力
log.debug("debugメッセージ");
// 詳細なデバッグの出力
log.trace("traceメッセージ");
try {
throw new Exception("Error Message");
} catch (Exception e) {
// Exceptionのスタックトレースを出力
log.error("Error Occurs:", e);
}
int[] ary = new int[10000];
if (log.isDebugEnabled()) {
for (int i = 0; i < 10000; i++) {
log.debug("array[" + i + "]=" + ary[i]);
}
}
}
}
No.1ベストアンサー
- 回答日時:
提供元の情報は参照してみましたか?
http://commons.apache.org/logging/guide.html
に大抵の情報は記載してあります。
Commons-logging自体は主にログ出力の仕様を提供するのが主たる
役割で、その実装(実装クラス)はアプリケーション、またはそれが動作する
環境(JRE)に依存するものです。
さて、今回の場合Commons-logging単体でLogインスタンスを生成していますが
特にその実装クラスの指定がないので内部実装されているLog4jまたはJDKの
の実装クラスにLogインスタンスが結び付けられていると思います。
確認するにはコード内のLogインスタンスから
log.getClass().getName()
確認してみてください。
出力された結果が実装クラスです。
その実装クラスには通常対応した設定情報ファイルが存在します。
現在ではすっかりデファクトスタンダードになっているLog4jの場合は
log4j.propertiesまたはlog4j.xmlなどがそれにあたります。
あまり長くなると混乱されてしまうでしょうから、要件の実現のみを
記載すると
クラスパス配下に実装クラスを定義する
commons-logging.properties
を作成し実装クラスを指定する記述を追加する。
org.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog
クラスパス配下に実装クラスSimpleLogの出力設定を定義する
simplelog.properties
を作成しログレベルを指定する木津樹を追加する。
org.apache.commons.logging.simplelog.defaultlog=trace
これでtraceログまでを出力することができるようになるでしょう。
しかしSimpleLogは出力を標準エラーにリダイレクトするので
デバッグ機能としての使用は?です。
やはり慣習に従い、Log4j等のwrapperクラスを使用する(log4j.jarを導入する)ほう
が
よいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「ラッパークラス」の存在意義...
-
メソッドの引数にクラス名を渡す
-
抽象クラスのエラーが出ます
-
ASP.NETでの共通コードの書き方...
-
private継承はどう使う?
-
Strutsのバージョンアップによ...
-
「継承されたメソッドの可視性...
-
「タイプ初期化子が例外をスロ...
-
中学のクラス数
-
eclipse-Tomcatでのデバッグに...
-
【sendkeysメソッドが動かずに...
-
JavaScriptからJAVAクラスを呼...
-
Java リフレクションについて
-
リフレクション
-
javascriptからjavaを呼び出したい
-
FEM解析の読み方は?
-
Excelで =EMBED("Acrobat Docu...
-
UMLのクラス図はmain()も含むん...
-
エクセルVBAで、条件に一致する...
-
パワーポイントのVBAでテキスト...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
(vba)他のアプリケーションの右...
-
ASP.NETでの共通コードの書き方...
-
オーバーライドとラッパーの違い
-
「継承されたメソッドの可視性...
-
C# 「データが失なわれる可能性...
-
メソッドの引数にクラス名を渡す
-
ゲッターを使わないで変数にア...
-
C#からDLLを呼びたいのですが・...
-
c++でのヘッダーファイルの循環...
-
interface,extend,implementの...
-
抽象クラスをJUNITでテストする...
-
Javaのインスタンス化の構文の...
-
【C#】クラスのコンストラクタ...
-
Excel vbaのプログラムでガンマ...
-
VB DLLプロジェクトについて
-
単体テストのテストケースにて...
-
デバッグ時に「Source not found」
-
「ラッパークラス」の存在意義...
-
Commons-Discovery.jarとは?
-
Ftpでの帯域制限の設定方法につ...
おすすめ情報