SSH框架中配置log4j日志以及Struts2配置异常处理方法

来源:互联网 发布:网络监控布线图 编辑:程序博客网 时间:2024/05/24 04:20
1. log4j.properties文件配置示例

# default properties to initialise log4jlog4j.rootLogger=ERROR,file,a1log4j.appender.a1=org.apache.log4j.ConsoleAppenderlog4j.appender.a1.layout=org.apache.log4j.PatternLayoutlog4j.appender.a1.layout.ConversionPattern=[%d{MM-dd HH:mm:ss}] %-5p %c{1} [%t]: %m%n# filelog4j.appender.file=org.apache.log4j.RollingFileAppenderlog4j.appender.file.File=${webapp.root}/WEB-INF/log/sshtest.loglog4j.appender.file.layout=org.apache.log4j.PatternLayoutlog4j.appender.file.layout.ConversionPattern=%d{HH:mm:ss} %-5p [%C] (%F:%L) - %m%nlog4j.appender.file.MaxFileSize=4096KB

2. web.xml文件配置示例

<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">  <display-name></display-name>  <welcome-file-list>    <welcome-file>index.jsp</welcome-file>  </welcome-file-list>   <filter>  <filter-name>struts2</filter-name>  <filter-class>   org.apache.struts2.dispatcher.FilterDispatcher  </filter-class>  </filter>  <filter-mapping>  <filter-name>struts2</filter-name>  <url-pattern>/*</url-pattern>  </filter-mapping>    <!--注意各监听器的顺序,否则可能会出现上述的${webapp.root}/WEB-INF/log/sshtest.log不存在的异常-->  <!-- log4j config path -->  <context-param><param-name>log4jConfigLocation</param-name><param-value>/WEB-INF/classes/log4j.properties</param-value>  </context-param>   <!-- webapp root path -->  <context-param>  <param-name>webAppRootKey</param-name>  <param-value>webapp.root</param-value>  </context-param>  <!-- spring config path -->  <context-param>  <param-name>contextConfigLocation</param-name>  <param-value>/WEB-INF/classes/applicationContext.xml</param-value>  </context-param>    <!-- log4j config listener -->  <listener><listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>  </listener>    <!-- spring contextloader listener -->  <listener>  <listener-class>  org.springframework.web.context.ContextLoaderListener  </listener-class>  </listener>  </web-app>


3. struts2.xml文件配置示例

按照如下配置,当应用出现未捕获的异常时,就能自动转到异常显示页面;要注意各节点的顺序
 
<struts><package name="its" extends="struts-default"><interceptors><interceptor-stack name="GlobalStack"><interceptor-ref name="defaultStack"><param name="exception.logEnabled">true</param><param name="exception.logLevel">ERROR</param></interceptor-ref></interceptor-stack></interceptors><default-interceptor-ref name="GlobalStack"></default-interceptor-ref><global-results><result name="error">/error.jsp</result></global-results><global-exception-mappings><!--在此可以设置多个异常类型--><exception-mapping result="error" exception="java.lang.Exception"></exception-mapping></global-exception-mappings><action name="login" class="com.inspur.its.action.LoginAction"><result name="success">/Result.jsp</result></action></package></struts>    

4. error.jsp页面示例(仅显示了body部分,自行导入struts2的tablib)

<body><div align="CENTER"><h2>页面出错了~</h2><hr><font color="red">出现异常:<br> <s:property value="exception.message" /><br>     <s:property value="exception.stackTrace" /><br>     <!-- <s:property value="exceptionStack" /><br> --> </font><br> <a href="javascript:void(0);" onclick="window.history.back();">返回</a></div></body>
出现异常后的截图示例如下:





0 0
原创粉丝点击