首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

屏蔽异常日志spring boot中的敏感数据-slf4j

在Spring Boot中屏蔽异常日志中的敏感数据,可以通过使用SLF4J(Simple Logging Facade for Java)来实现。SLF4J是一个简单的日志门面,它提供了统一的日志接口,可以与不同的日志实现框架(如Logback、Log4j、Java Util Logging等)进行集成。

要屏蔽异常日志中的敏感数据,可以按照以下步骤进行操作:

  1. 配置日志框架:在Spring Boot项目的依赖管理中,添加SLF4J和所选的日志实现框架的依赖。例如,可以在pom.xml文件中添加以下依赖:
代码语言:txt
复制
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
</dependency>
<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
</dependency>
  1. 配置日志级别:在Spring Boot的配置文件(如application.properties或application.yml)中,设置日志级别为WARN或ERROR。这样,只有警告级别或更高级别的日志信息才会被记录,而低于该级别的日志信息将被忽略。
代码语言:txt
复制
logging.level.root=WARN
  1. 使用日志框架的MDC(Mapped Diagnostic Context)功能:MDC是SLF4J提供的一种上下文信息传递的机制,可以在日志输出中添加自定义的上下文信息。通过使用MDC,可以将敏感数据存储在上下文中,并在需要记录日志时,从上下文中获取敏感数据并进行屏蔽。

在代码中,可以使用MDC的put方法将敏感数据存储在上下文中,例如:

代码语言:txt
复制
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.slf4j.MDC;

public class MyClass {
    private static final Logger logger = LoggerFactory.getLogger(MyClass.class);

    public void myMethod() {
        MDC.put("sensitiveData", "********"); // 将敏感数据存储在上下文中
        logger.error("An error occurred"); // 记录日志
        MDC.remove("sensitiveData"); // 清除上下文中的敏感数据
    }
}

在日志输出模板中,可以使用MDC的get方法获取上下文中的敏感数据,并进行屏蔽。例如,在Logback的配置文件(如logback.xml)中,可以使用%replace模式来替换敏感数据:

代码语言:txt
复制
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
        <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %replace(%msg){'********', '***'}%n</pattern>
    </encoder>
</appender>

这样配置后,日志中的敏感数据将被替换为***

总结起来,屏蔽异常日志中的敏感数据可以通过配置日志框架和使用SLF4J的MDC功能来实现。配置日志级别为WARN或ERROR,使用MDC将敏感数据存储在上下文中,然后在日志输出模板中使用%replace模式进行替换。这样可以保护敏感数据的安全性,并避免在日志中暴露敏感信息。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云日志服务(CLS):提供日志采集、存储、检索和分析的全生命周期管理服务,可用于集中管理和分析应用程序的日志数据。
  • 腾讯云云原生应用引擎(TKE):提供容器化应用的部署、管理和运维服务,支持快速构建和扩展云原生应用。
  • 腾讯云数据库(TencentDB):提供多种类型的数据库服务,包括关系型数据库、NoSQL数据库和分布式数据库,满足不同应用场景的需求。
  • 腾讯云安全产品:包括云安全中心、DDoS防护、Web应用防火墙(WAF)等产品,提供全方位的云安全保护和防护能力。
  • 腾讯云人工智能(AI):提供人工智能相关的服务和工具,包括图像识别、语音识别、自然语言处理等,帮助开发者构建智能化的应用。
  • 腾讯云物联网(IoT):提供物联网设备接入、数据采集、设备管理和应用开发的一站式解决方案,支持构建智能化的物联网应用。
  • 腾讯云移动开发:提供移动应用开发和运营的云服务,包括移动应用测试、推送服务、移动分析等,帮助开发者快速构建和推广移动应用。
  • 腾讯云对象存储(COS):提供可扩展的云存储服务,适用于存储和管理各种类型的数据,包括文档、图片、音视频等。
  • 腾讯云区块链(BCS):提供基于区块链技术的一站式解决方案,包括区块链网络搭建、智能合约开发和应用部署等。
  • 腾讯云元宇宙(Metaverse):提供虚拟现实(VR)和增强现实(AR)相关的服务和工具,支持构建沉浸式的虚拟现实应用和体验。
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Spring Boot 使用 SLF4J 进行日志记录

昨天老师跟大家分享了Spring Boot 返回 JSON 数据及数据封装,今天来跟大家分享一下如何使用 SLF4J 进行日志记录。...在实际项目中,我们则使用 SLF4J Logback 来输出日志,效率更高,Spring Boot 提供了一套日志系统,Logback 是最优选择。...在 application.yml 配置日志 Spring BootSLF4J 支持得很好,内部已经集成了 SLF4J,一般我们在使用时候,会对 SLF4J 做一下配置。...application.yml 文件是 Spring Boot 唯一一个需要配置文件。...总结 本文主要对 SLF4J 做了一个简单介绍,并且对 Spring Boot 如何使用 SLF4J 输出日志做了详细说明,着重分析了 logback.xml 文件日志相关信息配置,包括日志不同级别

1.2K30
  • Spring BootFreemarker异常处理

    在Freemarker页面如果使用${userName},并且userName为空,那么Freemarker页面就会崩掉 需要设置默认值${userName!}来避免对象为空错误。 ?...客户端请求 clientHandler处理客户端请求 线程池线程处理handler 根据输入流解析请求(解析请求行,解析消息头,解析消息正文) 根据输出流创建响应对象(发送状态行信息,发送响应头信息...Freemarker与Web容器无关,web项目中异常处理(@ControllerAdvice)只处理web请求,经由controller引发异常,无法处理freemarker异常,为了不让ftl...out) { logger.error(templateException.getMessage()); } } 这样即使ftl解析错误,比如某个变量没有定义,可以忽略,只是后台抛异常...,然后整个页面还是会渲染出来还会继续解析页面,提高项目处理异常健壮性。

    1.6K60

    Spring Boot2 系列教程(十三)Spring Boot 全局异常处理

    Spring Boot 项目中 ,异常统一处理,可以使用 Spring @ControllerAdvice 来统一处理,也可以自己来定义异常处理方案。...Spring Boot ,对异常处理有一些默认策略,我们分别来看。 默认情况下,Spring Boot 异常页面 是这样: ?...注意,动态页面模板,不需要开发者自己去定义控制器,直接定义异常页面即可 ,Spring Boot 自带异常处理器会自动查找到异常页面。 页面定义如下: ? 页面内容如下: <!...5、Spring Boot2 系列教程(五)Spring Boot yaml 配置 6、Spring Boot2 系列教程(六)自定义 Spring Boot starter 7、Spring...Boot2 系列教程(七)理解自动化配置原理 8、Spring Boot2 系列教程(八)Spring Boot 配置 Https 9、Spring Boot2 系列教程(九)Spring Boot

    93310

    Spring Boot集成Mybatis如何显示日志

    Spring Boot集成Mybatis项目中,如果出现SQL语句执行问题,我们需要进行排查。此时就需要打印对应SQL语句,那么该如何操作才能正常打印出对应SQL语句呢?...其实操作非常简单,在application.properties或application.yml文件配置对应mapper所在包日志级别即可。...对应value值为日志级别。 此时,再执行查询程序,就会打印出对应SQL日志信息来。...添加debug打印之后,执行一条单元测试,对应日志信息如下: 2020-04-02 21:43:39.466 INFO 92784 --- [ main] com.zaxxer.hikari.HikariDataSource...精品SpringBoot 2.x视频教程 《Spring Boot 2.x 视频教程全家桶》,精品Spring Boot 2.x视频教程,打造一套最全Spring Boot 2.x视频教程

    2K10

    Spring BootWeb应用统一异常处理

    Spring Boot提供了一个默认映射: /error,当处理抛出异常之后,会转到该请求处理,并且该请求有一个全局错误页面用来展示异常内容。...统一异常处理 虽然,Spring Boot实现了默认error映射,但是在实际应用,上面你错误页面对用户来说并不够友好,我们通常需要去实现我们自己异常提示。...创建全局异常处理类:通过使用 @ControllerAdvice定义统一异常处理类,而不是在每个Controller逐个定义。...然后在 @ControllerAdvice类,根据抛出具体 Exception类型匹配 @ExceptionHandler配置异常类型来匹配错误映射和处理。...Boot创建统一异常处理,实际实现还是依靠Spring MVC注解,更多更深入使用可参考Spring MVC文档。

    1.2K60

    Spring Boot 关于自定义异常处理套路!

    4-12-1.jpg 在 Spring Boot 项目中 ,异常统一处理,可以使用 Spring @ControllerAdvice 来统一处理,也可以自己来定义异常处理方案。...Spring Boot ,对异常处理有一些默认策略,我们分别来看。...默认情况下,Spring Boot 异常页面 是这样: 我们从这个异常提示,也能看出来,之所以用户看到这个页面,是因为开发者没有明确提供一个 /error 路径,如果开发者提供了 /error...路径 ,这个页面就不会展示出来,不过在 Spring Boot ,提供 /error 路径实际上是下下策,Spring Boot 本身在处理异常时,也是当所有条件都不满足时,才会去找 /error...注意,动态页面模板,不需要开发者自己去定义控制器,直接定义异常页面即可 ,Spring Boot 自带异常处理器会自动查找到异常页面。 页面定义如下: 页面内容如下: <!

    1K00

    Spring Boot 关于自定义异常处理套路!

    Spring Boot 项目中 ,异常统一处理,可以使用 Spring @ControllerAdvice 来统一处理,也可以自己来定义异常处理方案。...Spring Boot ,对异常处理有一些默认策略,我们分别来看。 默认情况下,Spring Boot 异常页面 是这样: ?...,提供 /error 路径实际上是下下策,Spring Boot 本身在处理异常时,也是当所有条件都不满足时,才会去找 /error 路径。...注意,动态页面模板,不需要开发者自己去定义控制器,直接定义异常页面即可 ,Spring Boot 自带异常处理器会自动查找到异常页面。 页面定义如下: ? 页面内容如下: <!...自定义异常数据 默认情况下,在Spring Boot ,所有的异常数据其实就是上文所展示出来5条数据,这5条数据定义在 org.springframework.boot.web.reactive.error.DefaultErrorAttributes

    1.3K40

    Spring Boot 关于自定义异常处理套路!

    Spring Boot 项目中 ,异常统一处理,可以使用 Spring @ControllerAdvice 来统一处理,也可以自己来定义异常处理方案。...Spring Boot ,对异常处理有一些默认策略,我们分别来看。 默认情况下,Spring Boot 异常页面 是这样: ?...,提供 /error 路径实际上是下下策,Spring Boot 本身在处理异常时,也是当所有条件都不满足时,才会去找 /error 路径。...注意,动态页面模板,不需要开发者自己去定义控制器,直接定义异常页面即可 ,Spring Boot 自带异常处理器会自动查找到异常页面。 页面定义如下: ? 页面内容如下: <!...自定义异常数据 默认情况下,在Spring Boot ,所有的异常数据其实就是上文所展示出来5条数据,这5条数据定义在 org.springframework.boot.web.reactive.error.DefaultErrorAttributes

    1.2K20

    Spring Boot异常处理和错误页面

    一、简介Spring Boot是一款非常流行Java框架,它极大地简化了Java应用程序开发。Spring Boot提供了许多有用功能,其中包括异常处理和错误页面。...在Web开发异常处理和错误页面是非常重要。当应用程序发生异常或出现错误时,我们需要将异常或错误信息返回给客户端或用户。...Spring Boot提供了强大异常处理和错误页面功能,帮助我们更好地处理异常和错误情况。...二、异常处理异常处理方式Spring Boot提供了多种处理异常方式,其中最常见方式是使用@ControllerAdvice注解和@ExceptionHandler注解。...三、错误页面静态错误页面在Spring Boot,我们可以通过自定义静态错误页面来实现错误页面的展示。

    93620

    Spring Boot 2 Webflux全局异常处理

    本文首先将会回顾Spring 5之前SpringMVC异常处理机制,然后主要讲解Spring Boot 2 Webflux全局异常处理机制。...SpringMVC异常处理 Spring 统一异常处理有 3 种方式,分别为: 使用 @ExceptionHandler 注解 实现 HandlerExceptionResolver 接口 使用 @controlleradvice...Spring 5 Webflux异常处理 webflux支持mvc注解,是一个非常便利功能,相比较于RouteFunction,自动扫描注册比较省事。...最后,我们获取错误属性并将它们插入服务器响应主体。 然后,它会生成一个JSON响应,其中包含错误,HTTP状态和计算机客户端异常消息详细信息。...接口、使用 @controlleradvice 注解;然后通过WebFlux函数式接口构建Web应用,讲解Spring Boot 2 Webflux函数级别和全局异常处理机制(对于Spring WebMVC

    3.9K20
    领券