您的位置:首页 > 编程语言 > Java开发

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

2007-03-13 09:54 495 查看
1.我们已经搭建完了基本框架,接下来加入日志功能,只需修改原来的web.xml,增加一些配置信息:
[align=left]<!--通知Spring Log4j配置文件的位置 -->[/align]
[align=left]<context-param>[/align]
[align=left] <param-name>log4jConfigLocation</param-name>[/align]
[align=left] <param-value>/WEB-INF/log4j.properties</param-value>[/align]
[align=left]</context-param>[/align]
[align=left] [/align]
[align=left]<!--Spring默认刷新Log4j配置文件的间隔,单位为millisecond-->[/align]
[align=left]<context-param>[/align]
[align=left] <param-name>log4jRefreshInterval</param-name>[/align]
[align=left] <param-value>60000</param-value>[/align]
</context-param>

[align=left]<!--在应用启动时,由Spring负责加载Log4j-->[/align]
[align=left]<listener>[/align]
[align=left] <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>[/align]
</listener>

2.接下来我们定义log4j.properties
[align=left]# Global logging configuration[/align]
[align=left]log4j.rootLogger=DEBUG,console,file[/align]
[align=left] [/align]
[align=left]## APPENDERS ##[/align]
[align=left]# define an appender named console, which is set to be a ConsoleAppender[/align]
[align=left]log4j.appender.console=org.apache.log4j.ConsoleAppender[/align]
[align=left] [/align]
[align=left]# define an appender named file, which is set to be a RollingFileAppender[/align]
[align=left]log4j.appender.file=org.apache.log4j.RollingFileAppender[/align]
[align=left]# replace <CATALINA_HOME> with your true path[/align]
[align=left]log4j.appender.file.File=D:/eclipse/workspace/login/log.txt[/align]
[align=left] [/align]
[align=left]## LAYOUTS ##[/align]
[align=left]# assign a SimpleLayout to console appender[/align]
[align=left]log4j.appender.console.layout=org.apache.log4j.SimpleLayout[/align]
[align=left] [/align]
[align=left]# assign a PatternLayout to file appender[/align]
[align=left]log4j.appender.file.layout=org.apache.log4j.PatternLayout[/align]
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中增加一个上下文参数
[align=left]<context-param>[/align]
[align=left] <param-name>webAppRootKey</param-name>[/align]
[align=left] <param-value>webLogin.root</param-value>[/align]
</context-param>

增加系统变量,变量名为webAppRootKey,变量值可以指定应用部署的目录,这样就可以在log4j.properties对日志输出的文件路径作如下修改:
log4j.appender.file.File=${webLogin.root}/log.txt
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: