基於Struts+Spring+Hibernate的Web應用程式框架的搭建(二)

來源:互聯網
上載者:User
  

1.我們已經搭建完了基本架構,接下來加入日誌功能,只需修改原來的web.xml,增加一些配置資訊:<!--通知Spring Log4j設定檔的位置 --><context-param>    <param-name>log4jConfigLocation</param-name>    <param-value>/WEB-INF/log4j.properties</param-value></context-param> <!--Spring預設重新整理Log4j設定檔的間隔,單位為millisecond--><context-param>    <param-name>log4jRefreshInterval</param-name>    <param-value>60000</param-value></context-param> <!--在應用啟動時,由Spring負責載入Log4j--><listener>    <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class></listener> 2.接下來我們定義log4j.properties# Global logging configurationlog4j.rootLogger=DEBUG,console,file ## APPENDERS ### define an appender named console, which is set to be a ConsoleAppenderlog4j.appender.console=org.apache.log4j.ConsoleAppender # define an appender named file, which is set to be a RollingFileAppenderlog4j.appender.file=org.apache.log4j.RollingFileAppender# replace <CATALINA_HOME> with your true pathlog4j.appender.file.File=D:/eclipse/workspace/login/log.txt ## LAYOUTS ### assign a SimpleLayout to console appenderlog4j.appender.console.layout=org.apache.log4j.SimpleLayout # assign a PatternLayout to file appenderlog4j.appender.file.layout=org.apache.log4j.PatternLayoutlog4j.appender.file.layout.ConversionPattern=%t%p-%m%n在log4j.properties中,我們定義了記錄層級是DEBUG,日誌資訊輸出目的地是控制台(console)和檔案(file)。3.這樣我們就可以在程式碼中進行日誌操作了:package test.register.action; import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse; import org.apache.log4j.LogManager;import org.apache.log4j.Logger;import org.apache.struts.action.Action;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import org.apache.struts.action.DynaActionForm; import test.register.entity.Register;import test.register.service.RegisterService; public class RegisterAction extends Action{              private static final Logger log = LogManager.getLogger(RegisterAction.class);              private RegisterService registerService;        public RegisterService getRegisterService() {              return registerService;       }        public void setRegisterService(RegisterService registerService) {              this.registerService = registerService;       }        public ActionForward execute(ActionMapping mapping,                                                               ActionForm form,                                                  HttpServletRequest request,                                     HttpServletResponse response)        throws Exception {              log.info("save register...");              Register r = (Register)((DynaActionForm)form).get("register");               getRegisterService().saveRegister(r);                         return mapping.findForward("success");       }            } 4.在上面log4j.properties中,我們指定日誌輸入檔案用了絕對路徑,這在很多時候不方便,為此我們作如下修改:在web.xml中增加一個上下文參數<context-param>    <param-name>webAppRootKey</param-name>    <param-value>webLogin.root</param-value></context-param> 增加系統變數,變數名為webAppRootKey,變數值可以指定應用部署的目錄,這樣就可以在log4j.properties對日誌輸出的檔案路徑作如下修改: log4j.appender.file.File=${webLogin.root}/log.txt

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.