Terry Zou
BlogJava
首页
新随笔
联系
聚合
管理
posts - 93, comments - 2, trackbacks - 0
Servlet日志输出Log4j配置
转自:
http://musicbox95351.iteye.com/blog/868526
比如项目为一个UserServlet,主要分三步
1 日志输出文件log4j.xml的配置。
2 加载日志配置文件的servlet类。
3 web.xml配置
第一步:
1
<?
xml version
=
"
1.0
"
encoding
=
"
UTF-8
"
?>
2
<!
DOCTYPE log4j:configuration SYSTEM
"
log4j.dtd
"
>
3
<
log4j:configuration xmlns:log4j
=
"
http://jakarta.apache.org/log4j/
"
>
4
<
appender name
=
"
infoChannel
"
5
class
=
"
org.apache.log4j.RollingFileAppender
"
>
6
<!--
设置通道file和输出方式:org.apache.log4j.RollingFileAppender
-->
7
<
param name
=
"
File
"
value
=
"
${catalina.home}/logs/tourist_guide_system_server.log
"
/><!--
设置File参数:日志输出文件名
-->
8
<
param name
=
"
Append
"
value
=
"
true
"
/><!--
设置是否在重新启动服务时,在原有日志的基础添加新日志
-->
9
<
param name
=
"
MaxBackupIndex
"
value
=
"
10
"
/>
10
<
param name
=
"
MaxFileSize
"
value
=
"
10KB
"
/>
11
<
layout
class
=
"
org.apache.log4j.PatternLayout
"
>
12
<
param name
=
"
ConversionPattern
"
value
=
"
%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
"
/><!--
设置输出文件项目和格式
-->
13
</
layout
>
14
<
filter
class
=
"
org.apache.log4j.varia.LevelRangeFilter
"
>
15
<
param name
=
"
LevelMin
"
value
=
"
INFO
"
/><!--
设置将INFO级别的日志通过该通道输出
-->
16
<
param name
=
"
LevelMax
"
value
=
"
INFO
"
/>
17
</
filter
>
18
</
appender
>
19
<
appender name
=
"
debugChannel
"
20
class
=
"
org.apache.log4j.RollingFileAppender
"
>
21
<!--
设置通道file和输出方式:org.apache.log4j.RollingFileAppender
-->
22
<
param name
=
"
File
"
value
=
"
${catalina.home}/logs/testdebug.log
"
/><!--
设置File参数:日志输出文件名
-->
23
<
param name
=
"
Append
"
value
=
"
true
"
/><!--
设置是否在重新启动服务时,在原有日志的基础添加新日志
-->
24
<
param name
=
"
MaxBackupIndex
"
value
=
"
10
"
/>
25
<
param name
=
"
MaxFileSize
"
value
=
"
10KB
"
/>
26
<
layout
class
=
"
org.apache.log4j.PatternLayout
"
>
27
<
param name
=
"
ConversionPattern
"
value
=
"
%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
"
/><!--
设置输出文件项目和格式
-->
28
</
layout
>
29
<
filter
class
=
"
org.apache.log4j.varia.LevelRangeFilter
"
>
30
<
param name
=
"
LevelMin
"
value
=
"
DEBUG
"
/>
31
<
param name
=
"
LevelMax
"
value
=
"
DEBUG
"
/>
32
</
filter
>
33
</
appender
>
34
<
appender name
=
"
STDOUT
"
class
=
"
org.apache.log4j.ConsoleAppender
"
>
35
<!--
设置监视器输出方式
-->
36
<
layout
class
=
"
org.apache.log4j.PatternLayout
"
>
37
<
param name
=
"
ConversionPattern
"
38
value
=
"
%-4r [%t] %-5p %c %x - %m%n
"
/>
39
</
layout
>
40
<!--
滤镜设置输出的级别
-->
41
<
filter
class
=
"
org.apache.log4j.varia.LevelRangeFilter
"
>
42
<
param name
=
"
levelMin
"
value
=
"
info
"
/>
43
<
param name
=
"
levelMax
"
value
=
"
info
"
/>
44
<
param name
=
"
AcceptOnMatch
"
value
=
"
true
"
/>
45
</
filter
>
46
</
appender
>
47
48
<
root
>
49
<!--
设置输出的级别大于等于DEGUG priority value
=
"
DEBUG
"
/
-->
50
<!--
设置输出的级别
-->
51
<
priority value
=
"
INFO
"
/>
52
<!--
设置接收所有输出的通道
-->
53
<
appender
-
ref ref
=
"
debugChannel
"
/>
54
<
appender
-
ref ref
=
"
infoChannel
"
/><!--
与前面的通道id相对应
-->
55
<
appender
-
ref ref
=
"
STDOUT
"
/>
56
</
root
>
57
58
</
log4j:configuration
>
第二步:
1
2
import
java.io.IOException;
3
4
import
javax.servlet.ServletException;
5
import
javax.servlet.http.HttpServlet;
6
import
javax.servlet.http.HttpServletRequest;
7
import
javax.servlet.http.HttpServletResponse;
8
9
import
org.apache.log4j.xml.DOMConfigurator;
10
import
org.slf4j.Logger;
11
import
org.slf4j.LoggerFactory;
12
13
public
class
UserServlet
extends
HttpServlet
{
14
private
static
final
Logger log
=
LoggerFactory.getLogger(UserServlet.
class
);
15
public
UserServlet()
{}
16
17
public
void
init()
throws
ServletException
{
18
log.info(
"
Initializing, My MyActionServlet init this System's Const Variable
"
);
19
String prefix
=
this
.getServletConfig().getServletContext().getRealPath(
"
/
"
);
//
读取项目的路径
20
String file
=
this
.getServletConfig().getInitParameter(
"
log4j
"
);
//
读取log4j相对路径
21
String filePath
=
prefix
+
file;
22
DOMConfigurator.configure(filePath);
//
加载.xml文件
23
log.info(
"
Initializing, end My Init
"
);
24
super
.init();
//
此方法不能省,ActionServlet覆盖了的此方法中有很多重要操作
25
}
26
}
第三步:
web.xml文件中增加servlet配置
1
<
servlet
>
2
<
servlet
-
name
>
userServlet
</
servlet
-
name
>
3
<
servlet
-
class
>
com.richhouse.servlet.UserServlet
</
servlet
-
class
>
4
<
init
-
param
>
5
<
param
-
name
>
log4j
</
param
-
name
>
6
<!--
这里标出了位置
-->
7
<
param
-
value
>/
WEB
-
INF
/
log4j.xml
</
param
-
value
>
8
</
init
-
param
>
9
<
load
-
on
-
startup
>
1
</
load
-
on
-
startup
>
10
</
servlet
>
11
<
servlet
-
mapping
>
12
<
servlet
-
name
>
userServlet
</
servlet
-
name
>
13
<
url
-
pattern
>/
userServlet
</
url
-
pattern
>
14
</
servlet
-
mapping
>
posted on 2014-05-26 11:13
Terry Zou
阅读(1411)
评论(0)
编辑
收藏
所属分类:
Tomcat+Eclipse
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
Chat2DB
C++博客
博问
管理
相关文章:
Servlet日志输出Log4j配置
如何使用log4j打印日志并保存日志
hibernate参数一览表
Multiple markers at this line
hibernate常见异常
oracle中imp命令详解
字节数组的相关操作(取反,查找位置,转为16进制)
Web项目Spring+hibernate+Spring mvc简单的添删改查
将字节数组转换为ImageView可调用的Bitmap对象
与
的区别与作用
<
2014年5月
>
日
一
二
三
四
五
六
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(2)
给我留言
查看公开留言
查看私人留言
随笔分类
Android(49)
Androidpn(2)
hibernate(1)
Https(1)
JavaCard(3)
jQuery(6)
netty
NFC(1)
react框架(1)
spring(2)
SpringBoot(1)
Tomcat+Eclipse(18)
WebService(2)
一些心得(1)
随笔档案
2020年4月 (4)
2015年7月 (5)
2015年6月 (6)
2015年5月 (4)
2015年4月 (3)
2015年3月 (1)
2015年2月 (1)
2015年1月 (4)
2014年12月 (1)
2014年11月 (2)
2014年10月 (2)
2014年9月 (2)
2014年5月 (5)
2014年3月 (3)
2014年2月 (2)
2014年1月 (8)
2013年12月 (2)
2013年7月 (2)
2013年6月 (4)
2013年5月 (16)
2012年7月 (1)
2012年3月 (2)
2011年7月 (6)
文章分类
struts2.1.6(3)
文章档案
2020年4月 (1)
2012年3月 (3)
相册
my angel
收藏夹
Java
Java
搜索
最新随笔
1. 搭建React环境,运行React项目
2. Spring @PostConstruct 、@Autowired和Construct 顺序
3. Spring中的ApplicationListener的使用详解案例(观察者模式)
4. @SpringBootApplication的使用
5. 服务器连接
6. ffg
7. abe
8. abd
9. abc
10. Android之Activity的四种启动模式
最新评论
1. re: Android JSON的简单例子
评论内容较长,点击标题查看
--JSON.COM
2. re: androidpn(本文服务器为tomcat)
评论内容较长,点击标题查看
--Deepak Singh
阅读排行榜
1. androidpn(本文服务器为tomcat)(5201)
2. Web项目Spring+hibernate+Spring mvc简单的添删改查(4145)
3. 如何使用log4j打印日志并保存日志(3426)
4. HttpClient连接服务器(方法有很多,我只写HttpPost,接收数据,传输数据都为json形式)(3374)
5. 配置数据源(mysql)(3050)
评论排行榜
1. Android JSON的简单例子(1)
2. androidpn(本文服务器为tomcat)(1)
3. Runtime.getRuntime().addShutdownHook((0)
4. setDaemon(0)
5. PendingIntent(0)