這是一個奇怪的請求,但我想在log4j.properties文件中設置一些jvmargs。目前我使用Ant比如設置一些ARGS ....在log4j.properties文件中設置jvmargs
jvmarg值=「 - Dmail.smtp.socketFactory.port = 465」
...但它會是巨大的,幾組將這些相關參數記錄到.properties文件中。有誰知道如何做到這一點?
在此先感謝!
這是一個奇怪的請求,但我想在log4j.properties文件中設置一些jvmargs。目前我使用Ant比如設置一些ARGS ....在log4j.properties文件中設置jvmargs
jvmarg值=「 - Dmail.smtp.socketFactory.port = 465」
...但它會是巨大的,幾組將這些相關參數記錄到.properties文件中。有誰知道如何做到這一點?
在此先感謝!
如果屬性可以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屬性定義。
Log4j只會在之後讀取屬性文件JVM已經啓動 - 這意味着它不會影響JVM參數。
如果你的例子是從你的實際情況,那麼你可以通過編程的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工作也。
這是我們已經看過的東西,但理想情況下,我們希望將配置與代碼分開,以便日後可以輕鬆地在不同的日誌記錄系統中進行交換... 我試圖設置: mail.smtp .port mail.smtp.socketFactory.class mail.smtp.socketFactory.port mail.smtp.socketFactory.fallback 在ant構建文件中設置它們是可以的......但不理想:( – Thomas 2010-03-23 09:59:59
log4j.properties用於配置log4j ...您認爲您可以配置JVM的原因是什麼? – skaffman 2010-03-23 09:48:05