slf4j简单介绍(3)-spring下使用

  1. 增加pom配置,让maven加载log4j包

<!-- log4j-->

 <dependency>

  <groupId>org.slf4j</groupId>

  <artifactId>slf4j-log4j12</artifactId>

  <version>1.7.2</version>

 </dependency>

  1. 修改web.xml,把log4j加到项目中

<!-- Log4j配置 -->

 <context-param>

 <param-name>log4jConfigLocation</param-name>

  <param-value>classpath:/log4j/log4j.xml</param-value>

 </context-param>

 <!-- 加载log4j配置文件 -->

 <listener>

 <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>

 </listener>


根据web.xml配置的路径,在src/main/resource目录下新建log4j/log4j.xml


<?xmlversion="1.0" encoding="UTF-8" ?>
<!DOCTYPElog4j:configuration SYSTEM"log4j.dtd">
<log4j:configuration
    xmlns:log4j='http://jakarta.apache.org/log4j/'>
    <appendername="CONSOLE" class="org.apache.log4j.ConsoleAppender">
        <layoutclass="org.apache.log4j.PatternLayout">
            <paramname="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss:SSS} %l%m%n" />
        </layout>
        <!--限制输出级别-->
        <filterclass="org.apache.log4j.varia.LevelRangeFilter">
            <paramname="LevelMax" value="ERROR" />
            <paramname="LevelMin" value="DEBUG"/>
        </filter>
    </appender>
    <root>
        <priorityvalue="debug" />
        <appender-ref ref="CONSOLE"/>
    </root>
</log4j:configuration>

  1. 4

经过上面的步骤后,log4j就配置好了,接下来是使用,在DemoController中使用,使用slf4j接口,代替log4j,这样假如以后不用log4j了,用logback等其它日志框架,只需修改配置文件,不需要修改java代码

packagecom.my1.controller;

importorg.slf4j.Logger;

importorg.slf4j.LoggerFactory;

importorg.springframework.stereotype.Controller;

importorg.springframework.web.bind.annotation.RequestMapping;

importorg.springframework.web.servlet.ModelAndView;

@Controller

public classDemoController {

 privatestatic Logger logger = LoggerFactory.getLogger(DemoController.class);

 

 @RequestMapping(value= "/toPage1.htm")

 publicModelAndView toPage1() {

 logger.debug("TEST");

  return newModelAndView("page1");

 }

}

  1. 5

由于用了springmvc框架,日志配置好后,会输出很多spring日志,在log4j.xml中,增加一段配置,修改spring包的日志输出级别

 <!-- 通过<category></category>的定义可以将各个包中的类日志输出到不同的日志文件中 -->

 <categoryname="org.springframework">

  <priorityvalue="error" />

 <appender-ref ref="CONSOLE" />

 </category>


  1. 6

log4j的自定义输出格式说明

<!-- %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) -->

  1. 7

log4j的输出方式说明

<!-- Log4j提供的appender有以下几种: -->

 <!--org.apache.log4j.ConsoleAppender(控制台), -->

 <!--org.apache.log4j.FileAppender(文件), -->

 <!--org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件), -->

 <!--org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件), -->

 <!--org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方) -->


发布了16 篇原创文章 · 获赞 69 · 访问量 18万+

猜你喜欢

转载自blog.csdn.net/xuaman/article/details/79771261