这是一个奇怪的请求,但我试图在 log4j.properties 文件中设置一些 jvmargs。目前我使用 ant 例如设置一些参数....
jvmarg value="-Dmail.smtp.socketFactory.port=465"
...但是将其中一些日志记录相关参数分组到 .properties 文件中会很棒。有谁知道如何做到这一点?
提前致谢!
这是一个奇怪的请求,但我试图在 log4j.properties 文件中设置一些 jvmargs。目前我使用 ant 例如设置一些参数....
jvmarg value="-Dmail.smtp.socketFactory.port=465"
...但是将其中一些日志记录相关参数分组到 .properties 文件中会很棒。有谁知道如何做到这一点?
提前致谢!
Log4j 只会在 JVM 启动后读取属性文件——这意味着它不会影响 JVM 参数。
如果您的示例来自您的实际情况,那么您可以以编程方式为 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。
如果可以在 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
集合中,同时从您的属性集合中读取值。
这样,您的代码不需要知道要添加到系统 props 的属性,只需知道要添加的属性由 systemprops 属性定义。