2014-03-25 64 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