一、log4j使用步骤(重点在使用过程和初始化):
1.将log4j.jar相关包放到jsp-examples\WEB-INF\lib下;
2.在classpath下面建立log4j.properties;
3.完善log4j.properties内容:
log4j.rootLogger
=
warn, stdout,A1
#配置输出到控制台
log4j.appender.stdout
=
org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout
=
org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern
=
(
%
F:
%
L)
-
%
m
%
n
log4j.appender.A1
=
org.apache.log4j.DailyRollingFileAppender
log4j.appender.A1.layout
=
org.apache.log4j.HTMLLayout
log4j.appender.A1.File
=
$
{webappHome}
/
logs
/
$
{date}
_log.html
log4j.appender.A1.MaxFileSize
=
100KB
具体log4j.properties的配置方法参见http://hi.baidu.com/276668688/blog/item
/e8d2fc1fdd8818c1a786698d.html
4.初始化log4j的配置文件:有两种方法
方法一:
a.新建一个初始化类,一般用Servlet或过滤器Log4JInit.java
package
log4j;
import
java.io.
*
;
import
javax.servlet.
*
;
import
javax.servlet.http.
*
;
import
org.apache.log4j.
*
;

public
class
Log4JInit
extends
HttpServlet
{
public
void
init()
throws
ServletException
{
String prefix
=
getServletContext().getRealPath(
"
/
"
);
String test
=
getServletContext().getRealPath(
""
);
System.out.println(prefix);
System.out.println(test);
System.setProperty(
"
webappHome
"
, test);
String file
=
getServletConfig().getInitParameter(
"
log4j-config-file
"
);
System.out.println(prefix
+
file);
//
从Servlet参数读取log4j的配置文件

if
(file
!=
null
)
{
PropertyConfigurator.configure(prefix
+
file);
}
}
}
注意:System.setProperty("webappHome",
test);”这行代码要出现在“PropertyConfigurator.configure(prefix +
file);”这行代码之前;因为这样才给"webappHome"设置值了,log4j.properties文件中的
“log4j.appender.A1.file=${webappHome}/logs/tomcat_log_”中的“${webappHome}”
这个环境变量才被赋值了,否则无法输出日志文件;
b.配置web.xml文件
<
servlet
>
<
servlet
-
name
>
log4jinit
</
servlet
-
name
>
<
servlet
-
class
>
log4j.Log4JInit
</
servlet
-
class
>
<
init
-
param
>
<
param
-
name
>
log4j
-
config
-
file
</
param
-
name
>
<
param
-
value
>
properties\
log4j.properties
</
param
-
value
>
</
init
-
param
>
<
load
-
on
-
startup
>
1
</
load
-
on
-
startup
>
</
servlet
>
注意:上面的load-on-startup应设为1,以便在Web容器启动时即装入该Servlet。log4j.properties文件放在根的
properties子目录中,也可以把它放在其它目录中。应该把.properties文件集中存放,这样方便管理。
方法二、使用Spring已经写好的过滤器
a.配置web.xml
<
context
-
param
>
<
param
-
name
>
log4jConfigLocation
</
param
-
name
>
<
param
-
value
>/
WEB
-
INF
/
config
/
log4j.properties
</
param
-
value
>
</
context
-
param
>
<
context
-
param
>
<
param
-
name
>
log4jRefreshInterval
</
param
-
name
>
<
param
-
value
>
6000
</
param
-
value
>
</
context
-
param
>
<
listener
>
<
listener
-
class
>
org.springframework.web.util.Log4jConfigListener
</
listener
-
class
>
</
listener
>
5.在webapp中使用log4j
主要建立一个属性public static Logger logger =
Logger.getLogger(Log4jTest.class);
logger.debug("This is debug.");
logger.info("This is an info.");
logger.warn("This is a warning.");
logger.error("This is an error.");
logger.fatal("This is a fatal error.");
6.在具体使用的时候如果触发了异常,就在生成以日期命名的html日志文件tomcat_log_2007-03-05.html了!
这个日志的格式可以在log4j.properties里面配置.......

被折叠的 条评论
为什么被折叠?



