SpringMVC第一个小例子(集成日志工具)

来源:互联网 发布:卡廷事件 知乎 编辑:程序博客网 时间:2024/06/07 02:58
      参考这位博主的博文:http://www.cnblogs.com/bigdataZJ/p/springmvc1.html,搭建了一个最简单的springmvc的例子,
里面添加了输出日志到本地文件夹的功能,具体搭建和springmvc所需要的jar包,文章已经写得非常详细了,相信你一步步来肯定
可以输出success的信息的,我想补充的是如何在springmvc中配置日志输出功能,如下步骤:
  1.在web.xml中配置Log4jConfigListener的监听,可以识别src路径下面的log4j的配置文件:
  <?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">  <display-name>SpringTest</display-name>  <welcome-file-list>    <welcome-file>index.html</welcome-file>    <welcome-file>index.htm</welcome-file>    <welcome-file>index.jsp</welcome-file>    <welcome-file>default.html</welcome-file>    <welcome-file>default.htm</welcome-file>    <welcome-file>default.jsp</welcome-file>  </welcome-file-list>      <!-- 配置DispatchcerServlet -->    <servlet>        <servlet-name>springDispatcherServlet</servlet-name>        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>        <!-- 配置Spring mvc下的配置文件的位置和名称 -->        <init-param>            <param-name>contextConfigLocation</param-name>            <param-value>classpath:springmvc.xml</param-value>        </init-param>        <load-on-startup>1</load-on-startup>    </servlet>        <servlet-mapping>        <servlet-name>springDispatcherServlet</servlet-name>        <url-pattern>/</url-pattern>    </servlet-mapping>        <!-- slf4j+log4j 开始 --><context-param><param-name>log4jConfigLocation</param-name><param-value>classpath:log4j.properties</param-value></context-param><context-param><param-name>log4jRefreshInterval</param-name><param-value>6000</param-value></context-param><listener>      <listener-class>        org.springframework.web.util.Log4jConfigListener      </listener-class>   </listener>   <!-- slf4j+log4j 结束 -->  </web-app>



   2.第二步写一个日志的工具类,可以输出普通的信息、error错误信息等,如下:
 
  package com.jackie.springmvc.handlers;import java.io.PrintWriter;import java.io.StringWriter;import org.apache.log4j.Logger;/** * 日志工具 *  * @author 你好邱林和 */public class LogUtil {private static Logger loggerInfo = Logger.getLogger("loggerInfo");private static Logger loggerError = Logger.getLogger("loggerError");public static void debug(String info){StackTraceElement[] temp = Thread.currentThread().getStackTrace();StackTraceElement a = (StackTraceElement) temp[2];loggerInfo.debug(getLogLocality(a, info));}public static void info(String info) {StackTraceElement[] temp = Thread.currentThread().getStackTrace();StackTraceElement a = (StackTraceElement) temp[2];loggerInfo.info(getLogLocality(a, info));}public static void warn(String info) {StackTraceElement[] temp = Thread.currentThread().getStackTrace();StackTraceElement a = (StackTraceElement) temp[2];loggerInfo.warn(getLogLocality(a, info));}public static void error(String info) {StackTraceElement[] temp = Thread.currentThread().getStackTrace();StackTraceElement a = (StackTraceElement) temp[2];loggerError.error(getLogLocality(a, info));}public static void error(Exception e) {StackTraceElement[] temp = Thread.currentThread().getStackTrace();StackTraceElement a = (StackTraceElement) temp[2];StringWriter sw = new StringWriter();e.printStackTrace(new PrintWriter(sw));loggerError.error(getLogLocality(a, sw.toString()));}public static String getLogLocality(StackTraceElement a, String msg) {StringBuffer sb = new StringBuffer();sb.append("CLASS:[");sb.append(a.getClassName());sb.append("] METHOD:[");sb.append(a.getMethodName());sb.append("] at [line:");sb.append(a.getLineNumber());sb.append("] - MSG:[");sb.append(" --- " + msg + " --- ");sb.append("]");return sb.toString();}}



   3.在需要的地方直接输出日志的地方写上:LogUtil.info("spring日志工具执行成功");
   

   4.执行完之后就可以在工程所在盘符,找到var的文件夹,找到对应的输出日志内容文件:sprinttest,如下图片:


   

   至此就可以完成springmvc集成log4j+slf4j的日志输出功能。


   关于log4j+slf4j的关系,可以百度一下,有很多博客讲的很好:http://www.importnew.com/7450.html#comment-204549

   
0 0
原创粉丝点击