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 支持多种日志级别,包括 SEVEREWARNINGINFOCONFIGFINEFINERFINEST 等级别。可以根据实际需求选择合适的日志级别进行记录。

此外,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 进行日志记录相关推荐

  1. Spring boot logback的使用(日志记录)

    1 在spring boot中已经自动包含了logback的jar包,如果不是spring boot需要在maven中导入依赖 <!-- https://mvnrepository.com/ar ...

  2. Spring Boot自定义注解+AOP实现日志记录

    访问Controller打印的日志效果如下: *********************************Request请求*********************************** ...

  3. spring boot admin 2.2 获取日志失败_SB实战20-Spring Boot的日志和报告

    上篇我们学习了<SB实战19-Spring Boot的外部配置>,本篇我们学习Spring Boot的日志和报告. 4 日志和报告 4.1 日志 日志是对应用运行时进行调试和分析的重要工具 ...

  4. 基于Spring Boot + Dubbo的全链路日志追踪(一)

    一. 概要 当前公司后端整体架构为:Spring Boot + Dubbo.由于早期项目进度等原因,对日志这块没有统一的规范,基本上是每个项目自己管自己的日志.这也对后面的问题排查带来了很大的困难,特 ...

  5. 记一次 Spring Boot 项目启动卡住问题排查记录

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 陈凯玲 来源 | https://url.cn ...

  6. Spring Boot 使用 Log4j2 Logback 输出日志到 EKL

    文章目录 1.ELK 介绍 2.环境.软件准备 3.ELK 环境搭建 4.Spring Boot 配置示例 4.1.Log4j2 方式配置 4.2.Logback 方式配置 1.ELK 介绍 ELK ...

  7. Spring Boot 2.x的默认日志管理与Logback配置详解

    前沿技术早知道,弯道超车有希望 积累超车资本,从关注DD开始 Spring Boot在所有内部日志中使用Commons Logging,但是对底层日志的实现是开放的.在Spring Boot生态中,为 ...

  8. spring boot项目中使用logback日志详解

    1. spring boot中的默认日志 SpringBoot为Java Util Logging,Log4J2和Logback提供了默认配置.SpringBoot默认配置日志输出到控制台,同时还提供 ...

  9. Spring Boot整合 Sentry 监控项目日志

    作者: lxchinesszz 来源:SpringForAll社区 Sentry Java版使用简介 基本概念 Sentry是什么? Sentry 是一个开源的实时错误报告工具,支持 web 前后端. ...

最新文章

  1. 访问数组元素进行获取
  2. 本机用域名不能访问_域名注册申请网站域名注意事项
  3. 298. Binary Tree Longest Consecutive Sequence
  4. CSS清除默认样式,聪明人已经收藏了!
  5. [转载]你呀,最大的问题就是太合群了
  6. VJC案例-风扇定时
  7. c++ time_t和tm
  8. SketchUp + Ruby 二次开发初识
  9. python下载加密m3u8_基于Python3实现的m3u8批量下载器 解密合并多线程 (开车新姿势~)...
  10. python 读取地震道头数据_[宜配屋]听图阁
  11. 居于canvas的原生js抽奖小程序
  12. Android-PickerView实现全国地区选择
  13. 股指期货策略精选合集
  14. 五分钟学会Python网络爬虫
  15. 逻辑学在计算机中的应用论文,逻辑学导论论文范文
  16. [历朝通俗演义-蔡东藩-前汉]第009回 充屯长中途施诡计 杀将尉大泽揭叛旗
  17. ThreadLocal应用实例
  18. PandoraBox 扩大overlay容量
  19. wordpress小说发布软件
  20. mysql tpcc_实战 TPCC-MySQL 基准测试

热门文章

  1. 印度比中国可怕在哪里?一能力或成超越中国秘密武器
  2. SpringBoot后台运行过程中被Killed的情况处理@杨章隐
  3. Three.js-着色器加工材质及材质着色器详解
  4. 使用Python制作酷炫二维码
  5. MySQL手动安装教程
  6. Python turtle库(螺旋正方形)
  7. ServletFileUpload上传文件带进度条
  8. 世界财富500强企业排行榜和营收数据(截至到2021年)
  9. 资产负债分析—以建设银行2020半年报为例
  10. 香港最优秀服务大奖2019