Apacheコモンズロギングの説明:インターネット上にはこれに関する多くのドキュメントはありません。
Javaコードにメッセージを記録するには、ソースコードに2つのクラスをインポートする必要があります。
今
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
、あなたのログを作成するには、次のいずれかの方法で、あなたのクラスの属性を作成します。
private Log m_log = LogFactory.getLog(MyClass.class);
または
private Log m_log = LogFactory.getLog("MyClassLogger");
最初のオプションは、単に一般的なロガーを作成していますクラスのために、デフォルトのロギングオプションによって制御されます。 2番目のオプションは、「MyClassLogger」という名前の特定のロガーを作成することです。これはデフォルトに個別に制御できます。ロギングを使用する他のサードパーティのソースコードを使用していても、そのソースコードからデバッグ情報やその他の情報を見たくない場合は、これを行うことができます。 ロガーの使用はかなり簡単です。
m_log.fatal(Object message);
m_log.fatal(Object message, Throwable t);
m_log.error(Object message);
m_log.error(Object message, Throwable t);
m_log.warn(Object message);
m_log.warn(Object message, Throwable t);
m_log.info(Object message);
m_log.info(Object message, Throwable t);
m_log.debug(Object message);
m_log.debug(Object message, Throwable t);
m_log.trace(Object message);
m_log.trace(Object message, Throwable t);
これらの方法は、優先度の高い順にリストされています。 Commons loggingは、デフォルトでINFO以降のすべてのメッセージを表示するように設定されています。ご覧のように、各メソッドには例外などのThrowable型を送信できるメソッドがオーバーロードされています。非常に便利です! メッセージを記録するために必要なのはこれだけです。あなたのケースでは
、あなただけ使用する必要があります。
logger.error("IOException Occured :", exception);
ここに例外オブジェクトがスローされた例外をログに記録されるように、スタックトレースをコールする必要はありません。
+1必要に応じてスタックトレースが埋め込まれています。スタックトレースを変更しない限り、明示的に呼び出すことはできません(私のライブラリで行っていますが、一般的には良い考えです:) –
@ peter-lawrey @ jb-nizetだから、私の場合は 'exception.fillInStackTrace()'は何をしますか? –
ThrowableのコンストラクタがすでにfillInStackTrace()を呼び出しているため、何もありません。スタックトレースはデフォルトでそこにあります。ご心配なく。 –