SpringBoot——整合SLF4j进行日志记录

目录

日志

项目总结

新建一个SpringBoot项目

 pom.xml

application.properties项目配置文件

logger.xml日志配置文件

TestController控制器

SpringbootSlf4jApplication启动类

启动项目

生成logger.log日志文件


日志

  • 在开发中,我们经常使用 System.out.println() 来打印一些信息,但是这样大量地使用System.out 会增加资源的消耗。所以在实际项目中使用 SLF4j 的 logback 来输出日志,效率更高
  • Spring框架日志管理默认选择的是JCL
  • Spring Boot默认使用的日志抽象层是 SLF4j ,默认使用的日志实现层是 logback

常用日志框架: 

常用的日志框架 简要介绍
JUL(java.util.logging.Logger)
  • 系统自带
  • 功能不够强大
Apache Commons Logging
  • 由Apache提供的一个通用日志API
  • 在程序运行时,通过动态机制自动找到真正使用的日志库
Log4j
  • 主要组成部分:
    • Logger(日志记录器):控制日志的输出级别与是否输出日志
    • Appender(输出端):指定日志的输出地点
    • Layout(日志格式化器):控制日志信息的输出格式
  • 7种log级别:(从低到高)TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF
  • 支持两种格式的配置文件:properties和XML
Logback
  • 是Log4j的升级版
  • 分成3个模块:
    • logback-core
    • logback-classic
    • logback-access
Log4j2
  • 是Log4j和Logback的升级版

SLF4J

(Simple Loggin Facade for Java,简单日志门面)

  • 是对所有日志框架制定的一种规范、标准和接口,不是具体的框架
  • 需要和诸如上面的具体框架配合使用
  • 多为SLF4J+Logback或SLF4J+Log4j2组合使用

 日志级别:(输出当前级别以及更高级别的日志信息)

日志级别 描述
OFF 关闭:不输出日志
FATAL 致命:输出可能会导致应用程序终止(崩溃)的错误
ERROR 错误:输出程序的错误(不会导致程序崩溃的错误)
WARN 警告:提示可能出现的问题
INFO 信息:输出应用运行过程的详细信息
DEBUG 调试:输出对调试有用的信息
TRACE 跟踪:输出程序的运行轨迹
ALL 所有:输出所有级别的信息

 日志格式变量:

日志格式变量 描述
%level 输出日志的级别
%date 或 %d 日志发生的时间
%logger

输出Logger的类路径,包名+类名

{n}限定了输出长度

%thread 当前线程名
%M 日志发生时的方法名
%L

日志调用代码所在行

(可能对性能有消耗)

%m 日志消息
%n

换行

首先,需要在 pom.xml 中添加 slf4j 相关的依赖: ```xml <dependencies> <!-- SpringBoot Web 依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- slf4j 相关依赖 --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.26</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.2.3</version> </dependency> </dependencies> ``` 其中,slf4j-api 是 slf4j 的接口,logback-classic 是 slf4j 的实现。 接下来,需要在 src/main/resources 目录下添加 logback.xml 配置文件: ```xml <?xml version="1.0" encoding="UTF-8"?> <configuration> <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> <!-- 控制台输出日志格式 --> <encoder> <pattern>%-5level %d{HH:mm:ss.SSS} [%thread] %logger{50} - %msg%n</pattern> </encoder> </appender> <appender name="file" class="ch.qos.logback.core.FileAppender"> <!-- 日志文件路径 --> <file>logs/myapp.log</file> <encoder> <!-- 日志文件输出日志格式 --> <pattern>%-5level %d{HH:mm:ss.SSS} [%thread] %logger{50} - %msg%n</pattern> </encoder> </appender> <root level="info"> <!-- 控制台输出日志级别 --> <appender-ref ref="console" /> <!-- 日志文件输出日志级别 --> <appender-ref ref="file" /> </root> </configuration> ``` 其中,控制台输出和日志文件输出的格式可以根据自己的需要进行调整。 最后,在代码中使用 slf4j 来输出日志: ```java import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class HelloController { private Logger logger = LoggerFactory.getLogger(HelloController.class); @GetMapping("/hello") public String hello() { logger.info("Hello, World!"); return "Hello, World!"; } } ``` 这里使用了 LoggerFactory 类来获取 Logger 对象,然后使用 Logger 对象输出日志。在上面的例子中,输出的日志级别是 info,所以只有 info 及以上级别的日志会被输出到控制台和日志文件中。如果需要输出 debug 或者其他级别的日志,可以在 logback.xml 中进行配置。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

戏拈秃笔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值