1

NetBeans プラットフォーム アプリケーションに log4j 構成ファイルをパッケージ化するには、明らかに熟考が必要です。これは私が試したことです...

some_netbeans_module の src/main/resources/my/package/log4j.xml に log4j.xml を入れました。パッケージは公開モジュール パッケージです (つまり、このパッケージのクラスは他のパッケージから使用されます)。モジュールを再構築し、ファイルが実際にモジュールにパッケージ化されることを確認しました。

私のクラスでは、いつものようにロガーのインスタンスを取得します。

static final Logger log = Logger.getLogger(ThisClass.class);

すべての NetBeans プラットフォーム アプリケーションには、特定のプロパティを設定できるようにする my_app.conf ファイルがあります。ここで log4j.conf を設定します。

log4j.configuration="/my/package/log4j.xml"

ここで、アプリケーションを実行すると、次の出力が表示されます。

[INFO] /home/me/my_app/application/target/my_app/bin/../etc/my_app.conf: 5:
log4j.configuration=/my/package/log4j.xml: not found

上記の構成の何が問題になっていますか?

4

1 に答える 1

2

次のように、プロパティにプロパティを追加すると、my_app.confファイル内で次のようになります。log4j.configurationdefault_options

default_options="...<other options> -J-Dlog4j.configuration=my/package/log4j.xml"

次に、このオプションが JVM に渡されます。log4jプロパティが-J-D追加されていることに注意してください。は-JNetBeans で JVM プロパティを表す-Dために使用され、 は JVMでシステム プロパティを表すために使用されます。

また、引用符は必要ないため、引用符とイニシャルを削除できます/削除する/必要があります。イニシャルがある場合、NetBeans は文句を言います。/

これを行うもう 1 つの方法 (ファイルを編集する必要がないので私が好む方法.conf) は、log4j.xml ファイルをデフォルト パッケージに入れることです。これを実行できない他の要件がある場合はlog4j.configuration、開発モードで IDE 内でアプリを実行しているときに、アプリの platform.properties ファイルにプロパティを配置する必要があることに注意してください。そのようです:

run.args.extra=-J-Dlog4j.configuration=my/package/log4j.xml

編集: NetBeans プラットフォームに関する質問については、NetBeans プラットフォーム ユーザーフォーラムに投稿してください。

于 2011-11-11T09:07:25.817 に答える