posts - 36, comments - 30, trackbacks - 0, articles - 3
          1.我們已經(jīng)搭建完了基本框架,接下來加入日志功能,只需修改原來的web.xml,增加一些配置信息:

           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默認(rèn)刷新Log4j配置文件的間隔,單位為millisecond-->
           8<context-param>
           9    <param-name>log4jRefreshInterval</param-name>
          10    <param-value>60000</param-value>
          11</context-param>
          12 
          13<!--在應(yīng)用啟動(dòng)時(shí),由Spring負(fù)責(zé)加載Log4j-->
          14<listener>
          15    <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
          16</listener>

          2.接下來我們定義log4j.properties

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

          在log4j.properties中,我們定義了日志級(jí)別是DEBUG,日志信息輸出目的地是控制臺(tái)(console)和文件(file)。

          3.這樣我們就可以在程序代碼中進(jìn)行日志操作了:

           1package test.register.action;
           2 
           3import javax.servlet.http.HttpServletRequest;
           4import javax.servlet.http.HttpServletResponse;
           5 
           6import org.apache.log4j.LogManager;
           7import org.apache.log4j.Logger;
           8import org.apache.struts.action.Action;
           9import org.apache.struts.action.ActionForm;
          10import org.apache.struts.action.ActionForward;
          11import org.apache.struts.action.ActionMapping;
          12import org.apache.struts.action.DynaActionForm;
          13 
          14import test.register.entity.Register;
          15import test.register.service.RegisterService;
          16 
          17public 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}

          4.在上面log4j.properties中,我們指定日志輸入文件用了絕對(duì)路徑,這在很多時(shí)候不方便,為此我們作如下修改:在web.xml中增加一個(gè)上下文參數(shù)

          1<context-param>
          2    <param-name>webAppRootKey</param-name>
          3    <param-value>webLogin.root</param-value>
          4</context-param>

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

          log4j.appender.file.File=${webLogin.root}/log.txt


          主站蜘蛛池模板: 读书| 错那县| 含山县| 开鲁县| 仁怀市| 富川| 芦山县| 宕昌县| 玛纳斯县| 河曲县| 东乡族自治县| 惠安县| 肥西县| 故城县| 保山市| 扎赉特旗| 和平区| 玉林市| 虹口区| 宕昌县| 梅州市| 吉水县| 武功县| 准格尔旗| 双牌县| 乐山市| 湟源县| 东乌| 威宁| 河间市| 昌图县| 汤原县| 黄石市| 应城市| 玉山县| 溧水县| 武威市| 西林县| 平舆县| 南皮县| 当雄县|