在log4j.properties文件中设置jvmargs

时间:2010-03-23 09:46:47

标签: java logging log4j jvm-arguments

这是一个奇怪的请求,但我试图在log4j.properties文件中设置一些jvmargs。目前我使用ant来设置一些args ....

jvmarg value =“ - Dmail.smtp.socketFactory.port = 465”

...但是将这些日志记录相关参数中的一些分组到.properties文件中会很棒。有谁知道怎么做?

提前致谢!

3 个答案:

答案 0 :(得分:1)

在 JVM已经启动之后,Log4j才会读取属性文件 - 这意味着它不会影响JVM参数。

答案 1 :(得分:0)

如果您的示例来自您的实际情况,那么您可以以编程方式为java邮件设置此值...

  

SMTP协议提供程序支持   以下属性,可能是   在JavaMail Session对象中设置。   属性始终设置为   串; 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。

答案 2 :(得分: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属性定义的。