在web project中使用log4j
下面我們以在tomcat中示范怎么配置和使用log4j
環(huán)境設(shè)置:用過tomcat的都知道,應(yīng)該把log4j.jar文件拷貝到%TOMCAT_HOME%\common\lib中。
編輯servlet:
1
package my.scwcd;
2
3
4
import javax.servlet.ServletException;
5
import javax.servlet.http.HttpServlet;
6
7
import org.apache.log4j.PropertyConfigurator;
8
9
public class Log4jInit extends HttpServlet
{
10
11
public Log4jInit()
{
12
super();
13
}
14
15
public void destroy()
{
16
super.destroy(); // Just puts "destroy" string in log
17
}
18
19
public void init() throws ServletException
{
20
String path = getServletContext().getRealPath("/");
21
22
String file = getInitParameter("log4j");
23
if(file != null)
{
24
PropertyConfigurator.configure(path+file);
25
}
26
27
}
28
29
}
30
31

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

并在web.xml中加入如下配置:
1
<servlet>
2
<servlet-name>Log4jInit</servlet-name>
3
<servlet-class>my.scwcd.Log4jInit</servlet-class>
4
<init-param>
5
<param-name>log4j</param-name>
6
<param-value>WEB-INF\log4j.properties</param-value>
7
</init-param>
8
<load-on-startup>1</load-on-startup>
9
</servlet>
10

2

3

4

5

6

7

8

9

10

注意上面<param-value>中的"\"在linux要寫成"/"。
還有加上log4j.properties文件在WEB-INF目錄下
log4j.rootLogger=INFO, A1 , R
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%nlog4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=log4j.log
log4j.appender.R.MaxFileSize=100KB
log4j.appender.R.MaxBackupIndex=1
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
下面寫了兩個(gè)測(cè)試的程序:
servlet Test.java中:
1
public void doGet(HttpServletRequest request, HttpServletResponse response)
2
throws ServletException, IOException
{
3
4
response.setContentType("text/html");
5
PrintWriter out = response.getWriter();
6
Logger logger = Logger.getLogger(Test.class);
7
logger.info("Test use Logging for Servlet");
8
out.println("<h1>Success<h1>");
9
out.flush();
10
out.close();
11
}
12
13

2



3

4

5

6

7

8

9

10

11

12

13

JSP temp.jsp中:
1
<%
2
response.setContentType("text/html");
3
Logger logger = Logger.getLogger("temp.jsp");
4
logger.info("Test use Logging for JSP");
5
out.println("<h1>Success<h1>");
6
%>
7

2

3

4

5

6

7

這樣在%TOMCAT_HOME%\bin目錄下會(huì)產(chǎn)生log4j.log的文件,這就是日志文件。