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

1. log4j.properties文件配置示例

# default properties to initialise log4j
log4j.rootLogger=ERROR,file,a1

log4j.appender.a1=org.apache.log4j.ConsoleAppender
log4j.appender.a1.layout=org.apache.log4j.PatternLayout
log4j.appender.a1.layout.ConversionPattern=[%d{MM-dd HH:mm:ss}] %-5p %c{1} [%t]: %m%n

# file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=${webapp.root}/WEB-INF/log/sshtest.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{HH:mm:ss} %-5p [%C] (%F:%L) - %m%n
log4j.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);" οnclick="window.history.back();">返回</a>
	</div>
</body>
出现异常后的截图示例如下:





  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值