Spring mvc WebSphere、Log4j和SpringMVC

Spring mvc WebSphere、Log4j和SpringMVC,spring-mvc,log4j,websphere-7,Spring Mvc,Log4j,Websphere 7,当服务器启动时,我在控制台中看到所有正确的log4j配置。但是,我没有看到来自spring框架的任何日志消息 另外,我添加了一些输出已定义的记录器的代码,我看到我的spring记录器已定义。为什么我看不到来自spring的任何日志消息 Enumeration loggers = Logger.getDefaultHierarchy().getCurrentLoggers(); while( loggers.hasMoreElements()){ Logger logger = (Logg

当服务器启动时,我在控制台中看到所有正确的log4j配置。但是,我没有看到来自spring框架的任何日志消息

另外,我添加了一些输出已定义的记录器的代码,我看到我的spring记录器已定义。为什么我看不到来自spring的任何日志消息

Enumeration loggers = Logger.getDefaultHierarchy().getCurrentLoggers();
while( loggers.hasMoreElements()){
    Logger logger = (Logger) loggers.nextElement();
    System.out.println(logger.getName()+","+logger.getLevel());
}

SystemOut     O org.springframework,DEBUG
我的web.xml是(log4j/spring部分):

我尝试过的事情:

1) 来自美国的公认答案

2) 我移除了很多我认为可能会干扰log4j的罐子

  • 我用slf4j-log4j.jar替换了slf4j-jdk.jar
3) 将springs log4j listener添加到web.xml(也尝试了appcontext.xml中的log4j初始化bean)

尝试将“Target”属性添加到控制台appender,如下所示:

 <appender name="ConsoleAppender" class="org.apache.log4j.ConsoleAppender">
        <param name="Target" value="System.out"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="conversionPattern" value="%5p %d %C{1} - %m%n" />
        </layout>
    </appender>

我的log4j.xml(我在JBoss7上使用它)文件中的附带示例:


您需要指定根记录器

<root>
    <priority value="info"/>
    <appender-ref ref="ConsoleAppender"/>
</root>


此外,正如@Ernestas所说,ConsoleAppender需要
Target
属性。

发现缺少的部分是jcl-over-slf4j.jar。一旦我让它工作起来,我就开始撤销我所做的所有其他更改,看看哪些更改是不必要的。最终,这就是我必须做的:

  • 添加:jcl-over-slf4j.jar,slf4j-log4j12.jar
  • 删除:slf4j-jdk.jar(commons-logging.jar没有干扰,所以 它留下了。)
  • 添加log4j.xml(见上文)
  • 事实证明,web.xml或appcontext.xml中特定于log4j的配置是不必要的——至少在我的例子中是这样

    我发现我的lib文件夹中有自己的log4j.properties文件的jar文件也没有干扰-


    顺便说一句,下面的帖子对识别这些文件很有帮助-

    我也有同样的问题,我通过添加commons日志的依赖项来解决这个问题。如果这对您也适用,请尝试。下面是我在pom.xml中添加的依赖项

           <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.0.3</version>
           </dependency>
    
    
    公用记录
    公用记录
    1.0.3
    
     <appender name="ConsoleAppender" class="org.apache.log4j.ConsoleAppender">
            <param name="Target" value="System.out"/>
            <layout class="org.apache.log4j.PatternLayout">
                <param name="conversionPattern" value="%5p %d %C{1} - %m%n" />
            </layout>
        </appender>
    
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
    <log4j:configuration debug="true" xmlns:log4j='http://jakarta.apache.org/log4j/'>
    
        <appender name="consoleAppender" class="org.apache.log4j.ConsoleAppender">
            <param name="Target" value="System.out"/>
            <param name="Threshold" value="debug"/>
            <layout class="org.apache.log4j.PatternLayout">
                <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n"/>
            </layout>
        </appender>
    
        <logger name="org.springframework" additivity="false">
            <level value="debug"/>
            <appender-ref ref="consoleAppender"/>
        </logger>
    
        <root>
            <level value="WARN"/>
            <appender-ref ref="consoleAppender"/>
        </root>
    
    </log4j:configuration>
    
    <root>
        <priority value="info"/>
        <appender-ref ref="ConsoleAppender"/>
    </root>
    
           <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.0.3</version>
           </dependency>