Loger 的使用|学习笔记

简介: 快速学习 Loger 的使用

开发者学堂课程【SpringBoot 实战教程 Loger 的使用】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/651/detail/10783


Loger 的使用


内容介绍:

一、loger 的使用有两种方式

二、举例


一、loger 的使用有两种方式

loger的使用有两种方式一个是<logger name= "com. qianfeng. controller"/>

第一种只指定了包名控制这个 controller 包下所有日志类的打印默认情况下和上一级的日志是相同的就是 rootroot 指定的日志级别是 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

image.png

在控制台上可以看到 infowarnerror 三个级别的日志因为 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 .warn("warn日志") ;

logger .error ("error日志") ;

return"ok" ;

}

5、启动Controller 功能访问路径叫 OK输入localhost:8080/ok

image.png

7、控制台打印了 warn 和 error 两个级别符合配置文件中的配置比 warn 级别高的只有 error 级别所以输出的是这两个类型的日志第二种不需要向上一级传递所有的信息都自己配置但是都是借助于上一级的 appender 实现的日志信息的显示这就是 loger 的两种使用方式

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
安全 Linux 网络安全
Windows本地搭建Emby媒体库服务器并实现远程访问「内网穿透」
Windows本地搭建Emby媒体库服务器并实现远程访问「内网穿透」
|
缓存 安全 Nacos
nacos常见问题之服务一直在报token expired!如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
1385 0
|
SQL 关系型数据库 MySQL
一篇文章解析mysql的 行转列(7种方法) 和 列转行
一篇文章解析mysql的 行转列(7种方法) 和 列转行
3505 0
|
存储 监控 固态存储
在高并发环境下,如何优化 WAL 的写入性能?
在高并发环境下,如何优化 WAL 的写入性能?
251 2
|
消息中间件 Java RocketMQ
消息队列 MQ产品使用合集之当SpringBoot应用因网络不通而启动失败时,该如何解决
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
|
机器学习/深度学习 人工智能 安全
千问团队开源会思考的QwQ模型,这模型成精了!
QwQ是由Qwen团队开发的大型语言模型,专注于增强AI的推理能力。此预览版本在数学和编程领域表现出色,但在其他领域仍有提升空间。模型具备深度自省和自我质疑的能力,通过逐步推理和假设检验,能够在复杂问题上取得突破性进展。QwQ不仅支持本地推理和Ollama直接运行,还提供了详细的微调指南,助力开发者根据特定需求定制模型。尽管QwQ在推理过程中存在语言切换和安全性等方面的局限性,Qwen团队仍致力于不断优化,推动模型向更高层次的智能迈进。[了解更多](https://modelscope.cn/studios/Qwen/QwQ-32B-preview)
3748 0
千问团队开源会思考的QwQ模型,这模型成精了!
|
Prometheus 监控 Cloud Native
docker安装prometheus+Granfan并监控容器
【9月更文挑战第14天】本文介绍了在Docker中安装Prometheus与Grafana并监控容器的步骤,包括创建配置文件、运行Prometheus与Grafana容器,以及在Grafana中配置数据源和创建监控仪表盘,展示了如何通过Prometheus抓取数据并利用Grafana展示容器的CPU使用率等关键指标。
758 1
|
传感器 Linux API
远程处理器消息框架(RPMSG) 【ChatGPT】
远程处理器消息框架(RPMSG) 【ChatGPT】
|
Web App开发 网络安全
requests库的使用—SSL证书验证
requests库的使用—SSL证书验证
368 0
|
Linux 调度
Linux内核的基础设施:工作队列、等待队列
本文介绍了Linux内核中的工作队列和等待队列机制,通过一个具体的Demo演示了如何使用等待队列进行条件等待和唤醒,以及工作队列的创建和调度,同时展示了修改唤醒条件导致无法唤醒进程的情况。
436 0