Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

springcloud分布式电商秒杀实战课程

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!
当前位置: 主页 > Java文档 > Java基础相关 >

slf4j+log4j2配置教程 PDF 下载


分享到:
时间:2020-11-11 14:43来源:http://www.java1234.com 作者:小锋  侵权举报
slf4j+log4j2配置教程 PDF 下载
失效链接处理
slf4j+log4j2配置教程 PDF 下载

本站整理下载:
 
相关截图:


主要内容:

简单入门
step1:引入依赖
在springboot-web项目中引入依赖
step2:添加配置文件
配置文件:log4j2-spring.xml
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <!-- 去掉springboot默认配置 --> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> <!-- 引入log4j2依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> </dependency>
step3:在代码中使用
初窥门径
<?xml version="1.0" encoding="UTF-8"?> <configuration status="OFF"> <appenders> <Console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/></Console> </appenders> <loggers> <root level="info"> <appender-ref ref="Console"/> </root> </loggers> </configuration> package com.guodx.midware.study.log4j2.web; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; /*** <b><code>HelloController</code></b> * <p/> * Description * <p/> * <b>Creation Time:</b> 2020/11/4 5:32. ** @author guodx */ @RestController public class HelloController { private static final Logger logger = LoggerFactory.getLogger(HelloController.class); @GetMapping("/hello") public String hello(String param){ //error级别的信息,参数就是你输出的信息 logger.error("Did it again!, {} - {}", param, 1); //info级别的信息 logger.info("我是info信息"); logger.debug("我是debug信息"); logger.warn("我是warn信息"); return "Hello"; } }
日志的级别
log4j规定了默认的几个级别: trace < debug < info < warn < error < fatal 等.
trace: 是追踪,就是程序推进以下,你就可以写个trace输出,所以trace应该会特别多,不过没关系,
我们可以设置最低日志级别不让他输出。
debug: 调试么,我一般就只用这个作为最低级别,trace压根不用。是在没办法就用eclipse或者idea
的debug功能就好了么。
info: 输出一下你感兴趣的或者重要的信息,这个用的最多了。
warn: 有些信息不是错误信息,但是也要给程序员的一些提示,类似于eclipse中代码的验证不是有
error 和warn(不算错误但是也请注意,比如以下depressed的方法)。
error: 错误信息。用的也比较多。
fatal: 级别比较高了。重大错误,这种级别你可以直接停止程序了,是不应该出现的错误么!不用那么
紧张,其实就是一个程度的问题。
logger配置name的机制
这个name有点类似java的包,是一种继承包含关系。比如: com.guodx.midware 包含 com.guodx.midware.logger
如果同时定义了这两个logger,则首先会精确匹配到更精细那个logger,也就是
com.guodx.midware.logger
默认情况下,它还会继续冒泡匹配 com.guodx.midware ,这也是重复日志产生的原因
如果不希望继续冒泡进行重复输出,可以在logger定义中添加 additivity="false" 以阻止冒泡
在上述的配置中:
如果有com.guodx.midware.logger.Hello打印info日志,则会使用配置1,结束;
如果有com.guodx.midware.util.HelloUtil打印info日志,则会使用配置2、配置3;
如果有com.guodx.midware.web.HelloController输出info日志,则会匹配配置3;
常见的Appender配置
输出到控制台:
级别之间是包含的关系,意思是如果你设置日志级别是trace,则大于等于这个级别的日志都会输出 <Logger name="com.guodx.midware.logger" level="info" additivity="false" /> --配置 1<Logger name="com.guodx.midware.util" level="info" additivity="true" /> --配置 2<Logger name="com.guodx.midware" level="info" additivity="false" /> --配置 3
输出到文件
输出到滚动日志文件
logger的Appender匹配
上述配置中,AppenderRef,是通过name属性来匹配关联输出到哪个Appender的。
pattern配置
<console name="Console" target="SYSTEM_OUT"> <!--输出日志的格式--> <PatternLayout pattern="${LOG_PATTERN}"/> <!--控制台只输出level及其以上级别的信息(onMatch),其他的直接拒绝(onMismatch)--> <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/> </console> <!--文件会打印出所有信息,这个log每次运行程序会自动清空,由append属性决定,适合临
 

------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐