Spring Boot 如何使用 JUL 进行日志记录
Spring Boot 如何使用 JUL 进行日志记录
在 Spring Boot 中,我们可以使用多种日志框架进行日志记录。其中,JUL (Java Util Logging) 是 Java 平台自带的日志框架,它提供了简单的 API 和配置,可以轻松地进行日志记录。本文将介绍如何在 Spring Boot 中使用 JUL 进行日志记录,并提供示例代码。
配置 JUL
默认情况下,Spring Boot 使用 Logback 作为其日志框架。如果想要使用 JUL 进行日志记录,需要进行一些配置。首先,我们需要在 pom.xml
文件中添加以下依赖:
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-logging</artifactId></exclusion></exclusions>
</dependency>
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
<dependency><groupId>org.slf4j</groupId><artifactId>jul-to-slf4j</artifactId><version>1.7.30</version>
</dependency>
在上面的依赖中,我们排除了默认的日志框架依赖 spring-boot-starter-logging
,并添加了 Jetty 服务器的依赖。此外,我们还添加了 jul-to-slf4j
的依赖,它将 JUL 日志记录器转换为 SLF4J 日志记录器,方便在 Spring Boot 中使用。
接下来,我们需要在 application.properties
文件中添加以下配置:
logging.level.root=INFO
logging.level.org.springframework=INFO
logging.level.org.hibernate=INFO
logging.level.com.example=FINEST
logging.config=classpath:logging.properties
在上面的配置中,我们指定了日志级别和日志配置文件的位置。logging.level.root
表示根记录器的日志级别,logging.level.org.springframework
表示 Spring 框架的日志级别,logging.level.org.hibernate
表示 Hibernate 框架的日志级别,logging.level.com.example
表示我们自己的应用程序的日志级别。在这里,我们将自己的应用程序的日志级别设置为 FINEST
,表示记录最详细的日志。logging.config
表示日志配置文件的位置,我们将其设置为 classpath:logging.properties
。
接下来,我们需要创建一个名为 logging.properties
的文件,用于配置 JUL。在该文件中,我们可以配置 JUL 的日志级别、输出目标、格式化器和过滤器等选项。以下是一个简单的示例:
handlers=java.util.logging.ConsoleHandler
.level=FINEST
java.util.logging.ConsoleHandler.level=FINEST
java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter
在上面的配置中,我们指定了日志级别、输出目标和格式化器。handlers
指定了输出目标,这里我们将日志输出到控制台。.level
表示根记录器的日志级别,java.util.logging.ConsoleHandler.level
表示控制台输出目标的日志级别,java.util.logging.ConsoleHandler.formatter
表示控制台输出目标的格式化器,这里我们使用了 SimpleFormatter
。
在 Spring Boot 中使用 JUL
在配置好 JUL 后,我们就可以在 Spring Boot 中使用 JUL 进行日志记录了。首先,我们需要在类中创建一个名为 logger
的日志记录器,例如:
private static final Logger logger = Logger.getLogger(DemoController.class.getName());
在上面的代码中,我们使用 Logger.getLogger
方法创建了一个名为 logger
的日志记录器,指定了该记录器所在的类的名称。
接下来,我们可以使用日志记录器记录日志。例如:
logger.info("This is an info message.");
在上面的代码中,我们使用 logger.info
方法记录了一条信息级别的日志。
JUL 支持多种日志级别,包括 SEVERE
、WARNING
、INFO
、CONFIG
、FINE
、FINER
和 FINEST
等级别。可以根据实际需求选择合适的日志级别进行记录。
此外,JUL 还支持使用占位符记录日志,例如:
String message = "Hello, {}!";
String name = "world";
logger.info(message, name);
在上面的代码中,我们使用占位符 {}
表示需要在日志中替换的部分,然后在日志记录方法中传入需要替换的值。这种方式可以避免拼接字符串带来的性能问题,也可以避免因为字符串拼接出错导致的日志输出不正确的问题。
示例代码
下面是一个完整的示例代码,演示如何在 Spring Boot 中使用 JUL 进行日志记录:
import java.util.logging.Logger;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class DemoController {private static final Logger logger = Logger.getLogger(DemoController.class.getName());@GetMapping("/hello")public String hello() {logger.info("This is an info message.");String message = "Hello, {}!";String name = "world";logger.info(message, name);return "Hello, world!";}
}
在上面的代码中,我们创建了一个名为 DemoController
的 Spring MVC 控制器,其中包含了一个名为 hello
的处理器方法。在该方法中,我们使用了上面介绍的方法记录了两条信息级别的日志,并返回了一个字符串。
总结
在本文中,我们介绍了如何在 Spring Boot 中使用 JUL 进行日志记录,并提供了示例代码。JUL 是 Java 平台自带的日志框架,提供了简单的 API 和配置,可以轻松地进行日志记录。通过配置和使用 JUL,我们可以更加方便地进行日志记录,提高应用程序的可维护性和可靠性。
Spring Boot 如何使用 JUL 进行日志记录相关推荐
- Spring boot logback的使用(日志记录)
1 在spring boot中已经自动包含了logback的jar包,如果不是spring boot需要在maven中导入依赖 <!-- https://mvnrepository.com/ar ...
- Spring Boot自定义注解+AOP实现日志记录
访问Controller打印的日志效果如下: *********************************Request请求*********************************** ...
- spring boot admin 2.2 获取日志失败_SB实战20-Spring Boot的日志和报告
上篇我们学习了<SB实战19-Spring Boot的外部配置>,本篇我们学习Spring Boot的日志和报告. 4 日志和报告 4.1 日志 日志是对应用运行时进行调试和分析的重要工具 ...
- 基于Spring Boot + Dubbo的全链路日志追踪(一)
一. 概要 当前公司后端整体架构为:Spring Boot + Dubbo.由于早期项目进度等原因,对日志这块没有统一的规范,基本上是每个项目自己管自己的日志.这也对后面的问题排查带来了很大的困难,特 ...
- 记一次 Spring Boot 项目启动卡住问题排查记录
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 陈凯玲 来源 | https://url.cn ...
- Spring Boot 使用 Log4j2 Logback 输出日志到 EKL
文章目录 1.ELK 介绍 2.环境.软件准备 3.ELK 环境搭建 4.Spring Boot 配置示例 4.1.Log4j2 方式配置 4.2.Logback 方式配置 1.ELK 介绍 ELK ...
- Spring Boot 2.x的默认日志管理与Logback配置详解
前沿技术早知道,弯道超车有希望 积累超车资本,从关注DD开始 Spring Boot在所有内部日志中使用Commons Logging,但是对底层日志的实现是开放的.在Spring Boot生态中,为 ...
- spring boot项目中使用logback日志详解
1. spring boot中的默认日志 SpringBoot为Java Util Logging,Log4J2和Logback提供了默认配置.SpringBoot默认配置日志输出到控制台,同时还提供 ...
- Spring Boot整合 Sentry 监控项目日志
作者: lxchinesszz 来源:SpringForAll社区 Sentry Java版使用简介 基本概念 Sentry是什么? Sentry 是一个开源的实时错误报告工具,支持 web 前后端. ...
最新文章
- 访问数组元素进行获取
- 本机用域名不能访问_域名注册申请网站域名注意事项
- 298. Binary Tree Longest Consecutive Sequence
- CSS清除默认样式,聪明人已经收藏了!
- [转载]你呀,最大的问题就是太合群了
- VJC案例-风扇定时
- c++ time_t和tm
- SketchUp + Ruby 二次开发初识
- python下载加密m3u8_基于Python3实现的m3u8批量下载器 解密合并多线程 (开车新姿势~)...
- python 读取地震道头数据_[宜配屋]听图阁
- 居于canvas的原生js抽奖小程序
- Android-PickerView实现全国地区选择
- 股指期货策略精选合集
- 五分钟学会Python网络爬虫
- 逻辑学在计算机中的应用论文,逻辑学导论论文范文
- [历朝通俗演义-蔡东藩-前汉]第009回 充屯长中途施诡计 杀将尉大泽揭叛旗
- ThreadLocal应用实例
- PandoraBox 扩大overlay容量
- wordpress小说发布软件
- mysql tpcc_实战 TPCC-MySQL 基准测试