SpringMVC(4):加入log4j 包打印日志输出

网友投稿 749 2022-10-15

SpringMVC(4):加入log4j 包打印日志输出

SpringMVC(4):加入log4j 包打印日志输出

2018/1/6

花了几个小时深入,下面是使用log4j.jar 包的详解。 1、log4j.jar是什么? Log4J 是Apache 的一个开源项目,是一个在我们编写代码过程提供实现日志输出功能的包。Log4J 可以实现通过配置的方式日志输出、日志目的地定义、日志格式定义 等功能,有效的管理日志。 2、Log4j 的3 个基本概念: 在使用Log4j 之前,先看看3 个基本概念:Looger,Appender,PatternLayout

三者关系如下:

图1:Logger,Appender,PatternLayout关系图

1. Logger : 日志输出器,提供输出日志功能。       Log4J 内置了7 中Log 等级,从低到高分别为ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF 。每个Logger 都要默认定义一个等级。同时对于每一条要输出的日志也定义了等级,不同等级的日志用不同的方法调用,共5 种等级(DEBUG, INFO, WARN, ERROR, FATAL), 通过如下方法写出日志:

Logger logger=Logger.getLogger( “logname ”); logger.info(“…”); logger.error(“…”); logger.debug(“…”); logger.warn(“…”); logger.fatal(“…”);

如果日志的等级高于等于日志输出器的等级,那么该日志才会被写入。 2. Appender : 日志目的地,用来定义日志目的地对象。在日志写出之前还必须先定义好日志器对应的日志目的地。一个日志器可以定义多个目的地。日志目的地有多种类型。 Appender结构图如下:

图2Appender结构图

其中Appender 是顶层接口,下面定义了很多种Appender ,几种常见的Appender 解释如下: (1)ConsoleAppender: 控制台作为日志输出地 (2)FileAppender: 文件作为日志输出地 (3)RollingFileAppender: 日志文件的大小受到限制,当内容超出最大的限制时,该文件将向上滚动。 3.PatternLayout :日志布局,用于定义日志格式。定义日志布局,指定在日志输出到目的地的时候以怎样的格式被输出。 3、小例子: 【1】新建一个 log4j.properties:

log4j.rootLogger=INFO, stdoutlog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target=System.outlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{2}: %m%n

【2】在web.xml 添加以下内容:

log4jConfigLocation classpath:log4j.properties org.springframework.web.util.Log4jConfigListener

【3】编写测试小例子:

package com.smbms.controller;import org.apache.log4j.Logger;import org.apache.log4j.PropertyConfigurator;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;@Controller public class IndexController { private Logger log = Logger.getLogger(IndexController.class.getName()); @RequestMapping("/hello") public String hello(){ String log4jConfPath = "log4j.properties"; PropertyConfigurator.configure(log4jConfPath); log.info("****************************"); log.error("zzzzzzzzzzzzzzzzzz"); return "hello"; } }

【4】输出结果:

18/01/06 22:03:50 INFO controller.IndexController: ****************************18/01/06 22:03:50 ERROR controller.IndexController: zzzzzzzzzzzzzzzzzz

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Android MVC/MVP/MVVM 框架
下一篇:Netty分布式高性能工具类FastThreadLocal和Recycler分析
相关文章

 发表评论

暂时没有评论,来抢沙发吧~