log4j和spring 3.1整合

本文介绍了如何将Spring 3.1框架与Log4j日志库进行整合。在尝试仅通过pom.xml引入Log4j依赖未成功后,重点讲述了在web.xml中进行必要的配置步骤,同时提供了log4j.xml配置文件的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一开始以为在pom.xml中引入log4j就可以了,实际上在web.xml中还要配置:

	<!-- log4j starts -->
	<context-param>
       <param-name>webAppRootKey</param-name>
       <param-value>userbehaviorstat.root</param-value>
    </context-param>
	<context-param>
	   <param-name>log4jConfigLocation</param-name>
	   <param-value>/WEB-INF/log4j.xml</param-value>
	</context-param> 
	<context-param>
		<param-name>log4jRefreshInterval</param-name>
		<param-value>60000</param-value>
	</context-param> 

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

每一项都是必须的,log4j.xml位置可以通过log4jConfigLocation指定,webAppRootKey不指定,有可能出异常,listener不指定就不会去使用log4j

log4j.xml配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
    <appender class="com.logtest.AsyncScribeAppender" name="scribe">
        <param value="true" name="addStackTraceToMessage"/>
        <param value="my-app.ru" name="hostname"/>
        <param value="true" name="printExceptionStack"/>
        <param value="my-app" name="scribeCategory"/>
        <param value="192.168.3.84" name="scribeHost"/>
        <param value="1463" name="scribePort"/>
        <param value="100" name="sizeOfInMemoryStoreForward"/>
        <param value="6000" name="timeToWaitBeforeRetry"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param value="%d{yy/MM/dd HH:mm:ss} %p %c{2}: %m%n" name="ConversionPattern"/>
        </layout>
    </appender>
    
    <!-- Application Loggers -->
	<logger name="com.yunzu.ubs">
		<level value="error" />
	</logger>
	
	<!-- 3rdparty Loggers -->
	<logger name="org.springframework.core">
		<level value="error" />
	</logger>
	
	<logger name="org.springframework.beans">
		<level value="error" />
	</logger>
	
	<logger name="org.springframework.context">
		<level value="error" />
	</logger>

	<logger name="org.springframework.web">
		<level value="error" />
	</logger>
	
    <root>
        <level value="error"/>
        <appender-ref ref="scribe"/>
    </root>
</log4j:configuration>

我这是写到scribe中的,所以对spring的info都要过滤掉,不写按缺省,所以要写成一个高级别log level的,如果不希望这些日志干扰,可以写成off级别,如果需要全写,写成all级别

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值