2014-03-25 101 views
0

我想使用log4j的1.2.9與4.0.1春季和JBoss 7.1,但每次我登錄控制檯的信息,但創建空文件...log4j的彈簧創建空文件

log4j的。屬性

log4j.appender.file=org.apache.log4j.RollingFileAppender 
log4j.appender.file.File=C:\\log\\loggingFile.log 
log4j.appender.file.MaxFileSize=1MB 
log4j.appender.file.MaxBackupIndex=1 
log4j.appender.file.layout=org.apache.log4j.PatternLayout 
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n 


log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.Target=System.out 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n 

# Root logger option 
log4j.rootLogger=INFO, file, stdout 

的web.xml

<context-param> 
    <param-name>log4jConfigLocation</param-name> 
    <param-value>/WEB-INF/log4j.properties</param-value> 
</context-param> 

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

簡單測試控制器

import org.apache.log4j.BasicConfigurator; 
import org.apache.log4j.Logger; 
@ManagedBean(name="MyController") 
public class MyController { 
    static final Logger logger = Logger.getLogger(MyController.class); 
    public String test() { 
    BasicConfigurator.configure(); 
    logger.debug(LoginController.class); 
    logger.info("Info.. "); 
    logger.error("Error.."); 
    logger.fatal("Fatal"); 
     return null; 
    }} 
+1

我不知道關於Spring配置監聽器,但log4j系統屬性來定義配置文件資源ist'log4j.configuration'而不是'log4jConfigLocation'(https://logging.apache.org/log4j/1.2/manual.html#defaultInit) – FrVaBe

+0

當我將其更改爲log4j.configuration該文件沒有創建 – elpazio

回答

1

的解決辦法是在/ WEB-INF添加jboss的部署,structure.xml排除org.apache.log4j

<jboss-deployment-structure> 
    <deployment> 
     dependencies --> 
     <exclusions> 
      <module name="org.apache.log4j" /> 
     </exclusions> 
    </deployment> 
</jboss-deployment-structure> 
0

由於您的配置對我來說很好,我相信您在webapp中有log4j.jar的額外副本。

此外,您爲什麼不使用JBoss AS 7.x中的日誌記錄subsystem?通過這個子系統,您可以爲您想要實現的所有功能進行集中配置。維護也會更容易。

對於這一點,只是刪除log4j.properties,並通過進口依賴log4j/slf4j,並確保你不收拾自己log4j/slf4j罐子在webapp

檢查出JBoss的Logging Configuration

Shishir

+0

thx我知道我可以使用,但即時通訊要求使用我自己的log4j配置是否有任何其他方式? – elpazio