Настройка jvmargs в файле log4j.properties - PullRequest
0 голосов
/ 23 марта 2010

Это немного странный запрос, но я пытаюсь установить некоторые jvmargs в файле log4j.properties. В настоящее время я использую муравей, например, для установки некоторых аргументов ....

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

... но было бы здорово сгруппировать несколько из этих аргументов, относящихся к протоколированию, в файл .properties. Кто-нибудь знает, как это сделать?

Заранее спасибо!

Ответы [ 3 ]

1 голос
/ 23 марта 2010

Log4j только прочитает файл свойств после , когда JVM уже запущена - это означает, что он не может влиять на аргументы JVM.

0 голосов
/ 23 марта 2010

Если свойства могут быть добавлены после запуска 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.

0 голосов
/ 23 марта 2010

Если ваш пример соответствует вашей реальной ситуации, вы можете установить это значение программно для java почты ...

Поставщик протокола SMTP поддерживает следующие свойства, которые могут быть установлены в JavaMailСессионный объект.Свойства всегда задаются как строки;столбец Тип описывает, как строка интерпретируется.Например, используйте

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

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

Этот пример выше должен работать и для mail.smtp.socketFactory.port.

...