基于Struts+Spring+Hibernate的Web应用框架的搭建(二)

  
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 configuration
log4j.rootLogger= DEBUG, console, file
 
## APPENDERS ##
# define an appender named console, which is set to be a ConsoleAppender
log4j.appender.console= org.apache.log4j.ConsoleAppender
 
# define an appender named file, which is set to be a RollingFileAppender
log4j.appender.file= org.apache.log4j.RollingFileAppender
# replace <CATALINA_HOME> with your true path
log4j.appender.file.File= D : /eclipse/workspace/login/log.txt
 
## LAYOUTS ##
# assign a SimpleLayout to console appender
log4j.appender.console.layout= org.apache.log4j.SimpleLayout
 
# assign a PatternLayout to file appender
log4j.appender.file.layout= org.apache.log4j.PatternLayout
log4j.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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值