2010-11-22 62 views
3

我有一個使用SLF4J日誌外觀的Java Web應用程序。迄今爲止,我們使用下面的Log4J實現(儘管我們正在考慮切換到Logback)。 Log4J目前通過放置在我們類路徑根目錄下的log4j.xml配置文件進行配置。在Spring中通過JNDI控制日誌文件的位置?

無論如何,我們使用JNDI來配置我們應用程序的其他方面,所以我非常熟悉如何設置並從JNDI中將字符串拉入到Spring配置文件中。

但是,我很想知道如何在Spring配置文件中創建一個Log4J appender。更好的是,是否可以通過Spring完全配置Log4J並跳過log4j.xml配置文件?我希望我不必以編程方式執行此操作。

我發現了一個名爲Log4jWebConfigurer的Spring類,但是這需要WAR運行爆炸(如果我可以幫助它,不要這樣做),並且日誌文件駐留在web-app目錄中(絕對不想要那)。

回答

2

首先獲得通過JNDI主目錄:

<bean id="log4jInitialization" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"> 
    <property name="targetClass" value="org.springframework.util.Log4jConfigurer" /> 
    <property name="targetMethod" value="initLogging" /> 
    <property name="arguments"> 
     <list> 
      <value>#{ myAppHome + '/conf/log4j.xml'}</value> 
     </list> 
    </property> 
</bean> 

<jee:jndi-lookup id="myAppHome" jndi-name="myAppHome" /> 

然後在下面的方式表達春語言的語句使用豆

相關問題