3

Java 5 では、可変数の引数や printf など、ロギング ステートメントの煩雑さを軽減できる多くの機能が導入されています。これにより、何かがログに記録されたときに発生するすべてのメッセージ構築コードとその周囲のif.

たとえば、次のように書く代わりに:

if (log.isDebugEnabled()
{
    log.debug("User id: "+uid+", Request id:"
    + rid +", Client IP: "+ip+" blah blah blah");
}

私は書きたい:

log.debug("User id: %s, Request id: %s, Client IP: %s blah blah blah",
uid, rid, ip);

またはそのようなもの。

ロギング フレームワーク、またはそれを支援するロギング フレームワークの拡張機能を知っていますか?

4

3 に答える 3

3

Log5jはまさにあなたが必要としているものです。

于 2009-02-18T11:01:31.820 に答える
2

Java 用の単純なログ ファサード (SLF4J)

Simple Logging Facade for Java または (SLF4J) は、さまざまなロギング API の単純なファサードとして機能することを目的としており、エンドユーザーがデプロイ時に目的の実装をプラグインできるようにします。SLF4J は、橋渡しするレガシー API とソース コード移行ツールもサポートしています。

SLF4J API は、JDK 1.4 ロギング、log4j、logback など、さまざまなロギング システムの高度な抽象化を提供します。機能には、パラメーター化されたログと MDC のサポートが含まれます。

例:

logger.info("{} {}!", "Hello", "world");

「Hello world!」を生成します。ただし、情報レベルが有効になっている場合のみ。

于 2009-02-18T11:12:28.877 に答える
1

そのための独自のラッパー メソッドを作成するのは簡単です。

于 2009-02-18T11:06:46.100 に答える