6

ビルドパスにlog4j.jarがあるプロジェクトAがあります。次の形式のロギングステートメントを持つクラスがいくつかあります。

Logger _log = Logger.getLogger(A.<>.class);
...
_log.info("...");

プロジェクトをjarとして別のプロジェクトBにエクスポートしています。プロジェクトBにはすでに独自のlog4jjarと独自の.xml構成ファイルがあります。さまざまな「レベル」でConsoleApenderにログを記録するようにAから特定のクラスを構成したいと思います。どうすればいいですか?

4

3 に答える 3

1

一般的に、あなたはしません。一般に、1つのlog4j構成ファイルが必要です。しかし、log4jのドキュメントで説明されているように、コードから明示的に構成をロードできると思います。

于 2012-08-29T22:05:00.823 に答える
1

log4j.jarのバージョン、おそらく新しいバージョンを選択してください。使用できるバージョンは1つだけです。プロジェクトAとプロジェクトBのログ構成をマージする必要があります。実行時にlog4jクラスでこれを行うことはできますが、できません。弾丸を噛み、ソース管理で一度マージします。

于 2012-08-29T22:05:42.267 に答える
1

ええと、基本的に、あなたはそれをするべきではありません。このように考えてください。そうすると、任意のアプリケーションに含まれる各ライブラリが独自のログ構成をホストし、アプリケーションに含まれるライブラリを、指定されていない順序で相互にオーバーライドする可能性が非常に高くなります。 。あなたはそれを望まないでしょう。そうしないでください。

[本当に本当にやりたい場合は、jar内にプロパティファイルを作成して、メインアプリケーションのxmlファイルでオーバーライドすることができます。詳細はこちらをご覧ください。しかし、しないでください。:)]

于 2012-08-29T22:06:35.917 に答える