开发者学堂课程【SpringBoot 实战教程: Loger 的使用】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/651/detail/10783
Loger 的使用
内容介绍:
一、loger 的使用有两种方式
二、举例
一、loger 的使用有两种方式
loger的使用有两种方式,一个是<logger name= "com. qianfeng. controller"/>
第一种只指定了包名,控制这个 controller 包下所有日志类的打印,默认情况下和上一级的日志是相同的,就是 root,root 指定的日志级别是 info,所以这个包下所有的类,会打印 info 及 info 级别以上的日志信息,没有指定 additivity,它会把日志信息向上级进行传递,也就是传递给root,日志信息显示在控制台还是显示在文件里没有指明,loger 不会打印任何日志信息,但是它会把日志信息传递给上一级 root,而 root 有两个 appender,一个是 file,一个是 console,传递给上级之后,上级就会使用 console 的 appender,在控制台打印 info 以及 info 级别以上的信息。这是这种配置的含义。
二、举例
1、在 controller 下写一个 controller 命名为 testcontroller,加注解,写一个功能,在类中显示日志,首先使用定义好的 logger,用 loggerfactory.getlogger 当前类,注意包要用 org.slf4j。当在某个功能里面想记录日志信息时用 logger,它里面对应每一个级别和相应级别名称相同的方法,比如显示 debug 级别,info 级别,warn 级别,error 级别,
@Controller
public class
TestController
{
private Logger logger = LoggerFactory . getLogger (this.getClass()
}
@RequestMapping ("/ show")
@ResponseBody
public String show ()
{
logger . debug ("debug
日志
") ;
logger .info("info
日志
") ;
logger . warn ("warn
日志
") ;
logger .error ("error
日志
") ;
return "show" ;
}
2、Testcontroller 在这个包下面,完全符合<logger name= "com. qianfeng. controller"/>
配置文件,所以 info 级别以及 info 级别以上的日志信息会传递给上一级,上一级可以向控制台或者向文件里输出日志,而上一级默认使用的是控制台,把上一级接收到的信息,info 级别以及 info 级别以上的进行打印,注意是上一级进行打印,启动,输入localhost
:8080/
show
。
在控制台上可以看到 info,warn,error 三个级别的日志,因为 debug 是在 info 级别以下的,上一级指定的是 info 级别,所以只能是等于或者高于这个级别的信息才能打印,debug 级别的日志是不能显示的,其他级别是在控制台显示,这就是 loger 的第一种配置方式。
3、第二种:它指定了包名和类名,它会控制 com. qianfeng. controller 包下的 SpringController 类的日志的打印,打印 warn 级别以及 warn 级别以上的日志信息,additivity 设置为 false 说明它不用再向上级传递日志信息,因为它自己会进行处理,把日志信息打印到控制台,引用 console,引用的是上一级的 appender 的 console,用 consoleappender 实现打印,这是 loger 第二种使用方式的意思。指定级别,指定了不同传递,指定日志向哪打印,必须是 SpringController 类中。
<!--additivity 是否向上级 loger 传递打印信息-->
<logger name= "com. qianfeng. controller. SpringController" level= "WARN" additivity "
<appender - ref ref= "console"/>
</ logger>
4、在 SpringController 类中显示日志,拷贝,显示 warn 以及 warn 级别以上的,只显示 warn 和 error 两种信息,debug 和 info 不会显示,要把 logger 加上。
/ / @ResponseBody
public String ok ()
{
logger . debug ( "debug
日志
") ;
logger. info("info
日志
") ;
logger .war
n
(
"warn
日志
") ;
logger .er
ror ("error
日志
") ;
return"ok" ;
}
5、启动,Controller 功能访问路径叫 OK,输入localhost
:8080/
ok
。
7、控制台打印了 warn 和 error 两个级别,符合配置文件中的配置,比 warn 级别高的只有 error 级别,所以输出的是这两个类型的日志,第二种不需要向上一级传递,所有的信息都自己配置,但是都是借助于上一级的 appender 实现的日志信息的显示。这就是 loger 的两种使用方式。