11

私はJavaロギングAPIを初めて使用し、この問題についてサポートが必要です。アプリケーションの作成中に、構成ファイルがプロジェクトのルートフォルダーに保存されたため、-Djava.util.logging.config.file=logging.propertiesswitchを使用してプログラムを実行しました。しかし、その後、実行可能JARをエクスポートしました。今すぐログを設定するにはどうすればよいですか?-Dスイッチで設定ファイルへのパスを指定すると機能しません。

4

3 に答える 3

10

JVM 引数を MANIFEST.MFファイルに指定することはできないため、コマンド ラインまたはショートカットでロギング プロパティを指定する必要があります。

java -Djava.util.logging.config.file=logging.properties -jar yourjar.jar

それ以外の場合は、プロパティ ファイル (あなたの場合は logging.properties) を JAR にパッケージ化し、起動時にそれを読み取り、それらの設定をシステム プロパティに入れることができます。

于 2012-04-29T09:16:00.690 に答える
5

javadocは次のように述べています。

さらに、LogManager は、初期構成の読み取りをより詳細に制御できる 2 つのオプションのシステム プロパティを使用します。

"java.util.logging.config.class"
"java.util.logging.config.file" 

これら 2 つのプロパティは、Preferences API を介して設定するか、「java」コマンドのコマンド ライン プロパティ定義として、または JNI_CreateJavaVM に渡されるシステム プロパティ定義として設定できます。

「java.util.logging.config.class」プロパティが設定されている場合、プロパティ値はクラス名として扱われます。指定されたクラスがロードされ、オブジェクトがインスタンス化され、そのオブジェクトのコンストラクターが初期構成の読み取りを担当します。(そのオブジェクトは、その構成を制御するために他のシステム プロパティを使用する場合があります。) 代替構成クラスは、readConfiguration(InputStream) を使用して LogManager のプロパティを定義できます。

そのため、システム プロパティを使用してjava.util.logging.config.file、jar ファイルから構成ファイルを保存するか (何らかの奇妙な動作をデバッグまたは分析するためにログ プロパティをカスタマイズできるようにする場合は、これがおそらく良い考えです)、または保存します。 config ファイルを必要な場所 (jar ファイルなど) に配置し、java.util.logging.config.classシステム プロパティを使用して、jar ファイル内のファイルを読み取るクラスをロードおよびインスタンス化します ( を使用Class.getResourceAsStream())。

于 2012-04-29T09:21:31.810 に答える