1、导入依赖包pom.

<project  ns="http://maven.apache.org/POM/4.0.0"  ns:xsi="http://www.w3.org/2001/ Schema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  <modelVersion>4.0.0</modelVersion>  <groupId>com.troy</groupId>  <artifactId>springlog</artifactId>  <version>0.0.1-SNAPSHOT</version>  <packaging>war</packaging>  <dependencies>    <dependency>      <groupId>org.spring work</groupId>      <artifactId>spring-webmvc</artifactId>      <version>3.2.8.RELEASE</version>    </dependency>     <dependency>      <groupId>log4j</groupId>      <artifactId>log4j</artifactId>      <version>1.2.9</version>    </dependency>  </dependencies></project>

2、web. 配置

<?  version="1.0" encoding="UTF-8"?><web-app  ns:xsi="http://www.w3.org/2001/ Schema-instance"  ns="http://java.sun.com/ /ns/javaee" xsi:schemaLocation="http://java.sun.com/ /ns/javaee http://java.sun.com/ /ns/javaee/web-app_2_5.xsd" version="2.5">  <display-name>spring-mvc</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>  <servlet>      <servlet-name>springmvc</servlet-name>      <servlet-class>org.spring work.web.servlet.DispatcherServlet</servlet-class>      <init-param>          <param-name>contextConfigLocation</param-name>          <param-value>classpath:spring/spring-mvc. </param-value>      </init-param>      <load-on-startup>1</load-on-startup>  </servlet>  <servlet-mapping>      <servlet-name>springmvc</servlet-name>      <url-pattern>/</url-pattern>  </servlet-mapping>  <filter>      <filter-name>encodingFilter</filter-name>      <filter-class>org.spring work.web.filter.CharacterEncodingFilter</filter-class>      <init-param>          <param-name>encoding</param-name>          <param-value>UTF-8</param-value>      </init-param>      <init-param>          <param-name>forceEncoding</param-name>          <param-value>true</param-value>      </init-param>  </filter>  <filter-mapping>      <filter-name>encodingFilter</filter-name>      <url-pattern>/</url-pattern>  </filter-mapping>    <context-param>      <param-name>log4jConfigLocation</param-name>      <param-value>classpath:conf/log4j.properties</param-value>  </context-param>  <context-param>      <param-name>log4jRefreshInterval</param-name>      <param-value>1800000</param-value>  </context-param>  <listener>      <listener-class>org.spring work.web.util.Log4jConfigListener</listener-class>  </listener>  </web-app>

说明:log4jConfigLocation、log4jRefreshInterval属性来源在:org.spring work.web.util.Log4jConfigListener里面的Log4jWebConfigurer配置里面

3、log4j.properties的配置

log4j.rootLogger=INFO,stdout,Rlog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=[ims] %d{yy-MM-dd HH:mm:ss:SSSS} %p %C{1}.%M(%L) | %m%nlog4j.appender.R=org.apache.log4j.RollingFileAppenderlog4j.appender.R.File=log/log.loglog4j.appender.R.MaxFileSize=1024KBlog4j.appender.R.MaxBackupIndex=50log4j.appender.R.layout=org.apache.log4j.PatternLayoutlog4j.appender.R.layout.ConversionPattern=[ims] %d{yy-MM-dd HH:mm:ss:SSSS} %p %C{1}.%M(%L) | %m%nlog4j.logger.ims=DEBUGlog4j.logger.tems=DEBUGlog4j.logger.com=DEBUGlog4j.logger.com.ibatis.io=ERRORlog4j.logger.com.opensymphony.oscache=INFOlog4j.logger.net.sf.navigator=ERRORlog4j.logger.org.apache.commons=ERRORlog4j.logger.org.apache.struts=INFOlog4j.logger.org.displaytag=ERRORlog4j.logger.org.spring work=WARNlog4j.logger.com.ibatis.db=WARNlog4j.logger.org.apache.velocity=FATALlog4j.logger.com.opensymphony.xwork2=INFOlog4j.logger.org.apache.struts2=INFOlog4j.logger.org.apache.struts2.convention=INFOlog4j.logger.com.opensymphony.xwork2.util.finder=INFOlog4j.logger.com.canoo.webtest=WARN# All hibernate log output of "info" level or higher goes to stdout.# For more verbose logging, change the "info" to "debug" on the last line.log4j.logger.org.hibernate.ps.PreparedStatementCache=WARNlog4j.logger.org.hibernate=WARNlog4j.logger.org.hibernate.SQL=debug   log4j.logger.org.hibernate.type=trace   #for jsplog4j.logger.org.apache.jasper.servlet=OFFlog4j.logger.org.apache.catalina.core=OFF

具体参数配置的意义,自行百度。
5、后台应用

@RequestMapping(value="/log")@Controllerpublic class LogController {        private static Logger log = Logger.getLogger(LogController.class);        @RequestMapping(value="/init")    public String init(){                log.info("log.jsp init");        return "log";    }}

注意:这里我只是做的测试,不要在意写那个层

 6、打印参数

   %m   输出代码中指定的消息  %p   输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL   %r   输出自应用启动到输出该log信息耗费的毫秒数   %c   输出所属的类目,通常就是所在类的全名   %t   输出产生该日志事件的线程名   %n   输出一个回车换行符,Windows平台为“/r/n”,Unix平台为“/n”   %d   输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss ,SSS},输出类似:2002年10月18日 22:10:28,921    %l   输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java: 10 ) 
  %M 输出方法的名字、%m是输出代码指定的日志信息。
%x 输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。
   %% 输出一个”%”字符
   %F 输出日志消息产生时所在的文件名称
   %M 输出执行方法
   %L 输出代码中的行号

 

收藏 打印