0

これは少し奇妙な要求ですが、log4j.properties ファイルにいくつかの jvmargs を設定しようとしています。現在、たとえば、いくつかの引数を設定するためにantを使用しています....

jvmarg value="-Dmail.smtp.socketFactory.port=465"

...しかし、これらのロギング関連の引数のいくつかを .properties ファイルにグループ化すると便利です。誰もこれを行う方法を知っていますか?

前もって感謝します!

4

3 に答える 3

1

Log4j は、JVM がすでに開始されたにのみプロパティ ファイルを読み取ります。つまり、JVM 引数に影響を与えることはできません。

于 2010-03-23T09:50:26.447 に答える
0

プロパティを JVM の起動後に追加できる場合は、SystemPropertiesコレクションに追加するすべてのプロパティをリストするプロパティ ファイルに次のようなプロパティを追加できます。

# property names of system properties
systemprops=mail.smtp.port mail.smtp.socketFactory.class

mail.smtp.port=465
mail.smtp.socketFactory.class=some.class

スタートアップ コードは、systemprops 値を読み取り、空白で分割し、結果のプロパティ リストをSystemPropertiesコレクションに追加しながら、プロパティ コレクションから値を読み取ることができます。

このように、システム プロパティに追加するプロパティをコードで知る必要はなく、追加するプロパティが systemprops プロパティによって定義されているだけです。

于 2010-03-23T12:06:17.890 に答える
0

あなたの例があなたの実際の状況からのものである場合、この値をプログラムでJavaメールに設定できます...

SMTP プロトコル プロバイダは、JavaMail セッション オブジェクトで設定できる次のプロパティをサポートしています。プロパティは常に文字列として設定されます。Type 列は、文字列がどのように解釈されるかを示します。たとえば、

    props.put("mail.smtp.port", "888");

http://java.sun.com/products/javamail/javadocs/com/sun/mail/smtp/package-summary.html

上記の例は、mail.smtp.socketFactory.port でも機能するはずです。

于 2010-03-23T09:56:35.357 に答える