2017-08-09 57 views
0

我正在研究通過war文件部署在jboss上的spring-mvc/maven應用程序。我使用log4j將日誌插入到數據庫中。這是我的log4j.properties文件的一個片段。
從aplication.properties文件中獲取log4j.properties文件的路徑到web.xml中

log4j.rootLogger=ERROR, CONSOLE 
log4j.logger.com.ge.epay.web.controller=INFO 
log4j.logger.com.ge=ERROR 
log4j.logger.org.springframework=ERROR 
log4j.logger.org.acegisecurity=ERROR 
log4j.logger.org.apache=ERROR 
log4j.logger.java.sql=ERROR 
log4j.logger.org.mybatis=ERROR 
log4j.logger.com.mchange=ERROR 

我想從ERROR更改日誌級別,而無需使在log4j.properties更改後重新部署應用程序調試。
因此,我將log4j.properties文件保存在war之外,並在我的web.xml中使用Log4jConfigListener。以下是我的web.xml文件的片段。

<context-param> 
     <param-name>log4jConfigLocation</param-name> 
     <param-value>file:/some path</param-value> 
    </context-param> 

    <context-param> 
     <param-name>log4jExposeWebAppRoot</param-name> 
     <param-value>false</param-value> 
    </context-param> 

    <!-- Time interval in millisecond after which the log4j properties will 
     be refreshed from the external file --> 
    <context-param> 
     <param-name>log4jRefreshInterval</param-name> 
     <param-value>1200000</param-value> 
    </context-param> 

    <listener> 
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
    </listener> 

    <listener> 
     <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class> 
    </listener> 

    <listener> 
     <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> 
    </listener> 


正如你可以看到我定義log4j.properies文件的路徑,在我的web.xml本身log4jConfigLocation參數。
我想要在application.properties文件或environment.properties文件中定義此位置。
是否可以從屬性文件中獲取位置並在web.xml中使用它?
將log4j.properties文件保存在戰爭之外並從應用程序讀取它是否安全?
預先感謝您。

回答

0

你的日誌屬性傾向於從classpath中讀取,因此設置你的屬性文件作爲類路徑的位置可能是您的解決方案

+0

log4j.properties文件是不是項目裏面。它被放置在其他位置。其路徑在web.xml – Waquar

+0

中提到,所以將該位置添加到類路徑 –

相關問題