1.我們已經搭建完了基本框架,接下來加入日志功能,只需修改原來的web.xml,增加一些配置信息:
2.接下來我們定義log4j.properties
在log4j.properties中,我們定義了日志級別是DEBUG,日志信息輸出目的地是控制臺(console)和文件(file)。
3.這樣我們就可以在程序代碼中進行日志操作了:
4.在上面log4j.properties中,我們指定日志輸入文件用了絕對路徑,這在很多時候不方便,為此我們作如下修改:在web.xml中增加一個上下文參數
增加系統變量,變量名為webAppRootKey,變量值可以指定應用部署的目錄,這樣就可以在log4j.properties對日志輸出的文件路徑作如下修改:
log4j.appender.file.File=${webLogin.root}/log.txt
1
<!--通知Spring Log4j配置文件的位置 -->
2
<context-param>
3
<param-name>log4jConfigLocation</param-name>
4
<param-value>/WEB-INF/log4j.properties</param-value>
5
</context-param>
6
7
<!--Spring默認刷新Log4j配置文件的間隔,單位為millisecond-->
8
<context-param>
9
<param-name>log4jRefreshInterval</param-name>
10
<param-value>60000</param-value>
11
</context-param>
12
13
<!--在應用啟動時,由Spring負責加載Log4j-->
14
<listener>
15
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
16
</listener>

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

2.接下來我們定義log4j.properties
1
# Global logging configuration
2
log4j.rootLogger=DEBUG,console,file
3
4
## APPENDERS ##
5
# define an appender named console, which is set to be a ConsoleAppender
6
log4j.appender.console=org.apache.log4j.ConsoleAppender
7
8
# define an appender named file, which is set to be a RollingFileAppender
9
log4j.appender.file=org.apache.log4j.RollingFileAppender
10
# replace <CATALINA_HOME> with your true path
11
log4j.appender.file.File=D:/eclipse/workspace/login/log.txt
12
13
## LAYOUTS ##
14
# assign a SimpleLayout to console appender
15
log4j.appender.console.layout=org.apache.log4j.SimpleLayout
16
17
# assign a PatternLayout to file appender
18
log4j.appender.file.layout=org.apache.log4j.PatternLayout
19
log4j.appender.file.layout.ConversionPattern=%t%p-%m%n

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

在log4j.properties中,我們定義了日志級別是DEBUG,日志信息輸出目的地是控制臺(console)和文件(file)。
3.這樣我們就可以在程序代碼中進行日志操作了:
1
package test.register.action;
2
3
import javax.servlet.http.HttpServletRequest;
4
import javax.servlet.http.HttpServletResponse;
5
6
import org.apache.log4j.LogManager;
7
import org.apache.log4j.Logger;
8
import org.apache.struts.action.Action;
9
import org.apache.struts.action.ActionForm;
10
import org.apache.struts.action.ActionForward;
11
import org.apache.struts.action.ActionMapping;
12
import org.apache.struts.action.DynaActionForm;
13
14
import test.register.entity.Register;
15
import test.register.service.RegisterService;
16
17
public class RegisterAction extends Action{
18
19
private static final Logger log = LogManager.getLogger(RegisterAction.class);
20
21
private RegisterService registerService;
22
23
public RegisterService getRegisterService() {
24
return registerService;
25
}
26
27
public void setRegisterService(RegisterService registerService) {
28
this.registerService = registerService;
29
}
30
31
public ActionForward execute(ActionMapping mapping,
32
ActionForm form,
33
HttpServletRequest request,
34
HttpServletResponse response)
35
throws Exception {
36
log.info("save register
");
37
Register r = (Register)((DynaActionForm)form).get("register");
38
getRegisterService().saveRegister(r);
39
return mapping.findForward("success");
40
}
41
42
}

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

32

33

34

35

36


37

38

39

40

41

42

4.在上面log4j.properties中,我們指定日志輸入文件用了絕對路徑,這在很多時候不方便,為此我們作如下修改:在web.xml中增加一個上下文參數
1
<context-param>
2
<param-name>webAppRootKey</param-name>
3
<param-value>webLogin.root</param-value>
4
</context-param>

2

3

4

增加系統變量,變量名為webAppRootKey,變量值可以指定應用部署的目錄,這樣就可以在log4j.properties對日志輸出的文件路徑作如下修改:
