【问题标题】:Spring logs are writing , where as Normal logs not writing using log4jSpring 日志正在写入,而普通日志不使用 log4j 写入
【发布时间】:2014-09-11 20:29:05
【问题描述】:

我正在使用 Log4j.xml 为我的系统进行日志记录,我有两个项目,一个是 spring 项目,另一个是普通 java 项目,

我为两个项目都配置了 log4j.xml,pblm 是,只有 spring 注入的日志被写入日志文件,正常的 java 日志没有被写入日志文件,你能帮我什么是确切的 pblm ,我在哪里做错了?

log4j.xml `

    <appender name="scoringenine.trace" class="org.apache.log4j.DailyRollingFileAppender">
        <param name="File" value="/logs/scoringengine/Trace.log" />
        <param name="Append" value="true" />
        <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d | %5p %X{SessionID} %t %n %l : %m  %n%n%n" /> 
        </layout>
        </appender>  
    <appender name="util.trace" class="org.apache.log4j.DailyRollingFileAppender">
        <param name="File" value="/logs/util/Util.log" />
        <param name="Append" value="true" />
        <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d | %5p %X{SessionID} %t %n %l : %m  %n%n%n" /> 
        </layout>
        </appender>
<category name="com.core" additivity="true">
        <priority value="info" />
        <appender-ref ref="scoringenine.trace"/>
    </category> 
<category name="com.util" additivity="true">
        <priority value="info" />
        <appender-ref ref="util.trace"/>
    </category> 

`

web.xml `

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
    /WEB-INF/config/spring/applicationcontext.xml
    </param-value>
  </context-param>
  <context-param>
    <param-name>log4jConfigLocation</param-name>
    <param-value>classpath:log4j.xml</param-value>
  </context-param>
  <context-param>
    <param-name>log4jExposeWebAppRoot</param-name>
    <param-value>false</param-value>
  </context-param>
    <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
    <listener>
    <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
  </listener>

spring.xml

<bean id="mqLogger" class="org.apache.log4j.Logger" factory-method="getLogger">
        <constructor-arg value="com.*.mq"></constructor-arg>
    </bean>

`

我的 java

`

import org.apache.log4j.Logger;
    Class Utils{
    private static Logger logger = Logger.getLogger(Utils.class.getName());
    logger.log("inside utils");
    }

`

我的类路径中有 log4j 、 slflog4j 、 commons-lang.jar 这个 looger 没有打印 (Util.log) util.trace,appender 没有登录日志文件,而 spring 注入日志 (Trace.log) scorengine.trace appender 正在记录...

【问题讨论】:

标签: java xml spring logging


【解决方案1】:

LogFactory 是一个 Apache Commons Logging 工厂,因为它是一个不同的框架。你需要像这样实例化你的记录器:

private static final Logger LOG = Logger.getLogger(Utils.class);

确保您已定义此导入:

import org.apache.log4j.Logger;

【讨论】:

  • 嗨@Stefan,对不起,我已经按照你说的那样做了,仍然没有写
  • 您是否使用 LOG.info("abc") 登录?
  • 嗨@Stefan,对不起,我只使用 Log.info("")
猜你喜欢
  • 1970-01-01
  • 2016-06-12
  • 1970-01-01
  • 2018-03-28
  • 1970-01-01
  • 1970-01-01
  • 2015-11-06
  • 2012-10-25
  • 1970-01-01
相关资源
最近更新 更多