2010-03-23 3 views
0

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

значение jvmarg = «- Dmail.smtp.socketFactory.port = 465»

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

Заранее благодарен!

+1

log4j.properties предназначен для настройки log4j ... что заставляет вас думать, что вы можете настроить JVM? – skaffman

ответ

0

Если свойства могут быть добавлены после запуска виртуальной машины Java, можно добавить свойство в файл свойств, в котором перечислены все свойства, которые вы хотите добавить в 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.

1

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

0

Если ваш пример из вашей реальной ситуации, то вы можете установить это значение программно для 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 также.

+0

Это то, на что мы смотрели, но в идеале мы хотели бы сохранить конфигурацию отдельно от кода, чтобы мы могли легко поменяться местами в разных системах ведения журнала ... Я пытаюсь установить: mail.smtp .port mail.smtp.socketFactory.class mail.smtp.socketFactory.port mail.smtp.socketFactory.fallback Установка их в муравья построить файл в порядке ... но не идеально :( – Thomas

Смежные вопросы