「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で質問しましょう!
似たような質問が見つかりました
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- 写真 log撮影について。今まで、9割がた映像ではなく写真をlog撮影でとってきました。 映像ではlogの 3 2023/07/04 23:28
- Java Java 配列<選挙> 4 2023/07/31 15:07
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- 統計学 統計検定2級を取ろうと勉強中なのですが分からないことがあったので質問させていただきます。 スタージェ 6 2023/01/01 23:02
- 数学 log底10真数1/75 ただし、 log底10真数2=0.3 log底10真数3=0.5とする 式 2 2022/05/30 22:51
- 数学 微分方程式の積分定数について 5 2023/07/13 08:39
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
(vba)他のアプリケーションの右...
-
「ラッパークラス」の存在意義...
-
c++でのヘッダーファイルの循環...
-
javaのクラスの分け方について...
-
抽象クラスをJUNITでテストする...
-
interface,extend,implementの...
-
「IOException は対応する try ...
-
vb.net 自作プロパティの削除に...
-
javaの「型」がよくわかりません。
-
ラベルに日付を表示
-
デバックログの出し方
-
Java interface
-
ゲッターを使わないで変数にア...
-
オーバーライドとラッパーの違い
-
なぜインタフェースを使うのか?
-
Commons-Discovery.jarとは?
-
VB DLLプロジェクトについて
-
「ひとつのインターフェースで...
-
WindowsアプリケーションのASP....
-
private継承はどう使う?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
interface,extend,implementの...
-
(vba)他のアプリケーションの右...
-
抽象クラスをJUNITでテストする...
-
「ラッパークラス」の存在意義...
-
ASP.NETでの共通コードの書き方...
-
JTextFieldの入力制限
-
「継承されたメソッドの可視性...
-
C# 「データが失なわれる可能性...
-
VB DLLプロジェクトについて
-
c++でのヘッダーファイルの循環...
-
【C#】クラスのコンストラクタ...
-
「IOException は対応する try ...
-
ファイルパスが取得出来ない(P...
-
メソッドの引数にクラス名を渡す
-
ゲッターを使わないで変数にア...
-
Javaのインスタンス化の構文の...
-
オーバーライドとラッパーの違い
-
vb.net 自作プロパティの削除に...
-
なぜインタフェースを使うのか?
-
VBがオブジェクト指向言語でな...
おすすめ情報