logback日志脱敏后异步写入文件

        大家项目中肯定都会用到日志打印,目的是为了以后线上排查问题方便,但是有些企业对输出的日志包含的敏感(比如:用户身份证号,银行卡号,手机号等)信息要进行脱敏处理。

       哎!我们最近就遇到了日志脱敏的改造。可以说是一波三折。

        浩浩荡荡的日志脱敏改造就这样开始..........

              第一季 :在项目中所有log.info方法输出日志的地方手工脱敏,很low的一种方法

        初期想法很简单,就是根据业务,判断哪些info输出的地方可能包含敏感信息,然后进行手工脱敏。但是有很大弊端,一是工作量大,二是业务不熟悉很难一次改全。

脱敏工具类:

package com.lsl.utills;

public class Utils {

    public static String checkParams(String str){

        if (str != null){
            String strnew = str.replaceAll("1[3-9]\\d{9}","***");
            return strnew;
        }else {
            return "";
        }

    }
}

代码中调用这个工具类:

package com.lsl.controller;


import com.lsl.utills.Utils;
import com.lsl.vo.User;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@RequestMapping("/lsl")
public class LogbackTestController {
    private static final Logger LOG = LoggerFactory.getLogger(LogbackTestController.class);

    @PostMapping(value = "qryUser", produces = "application/json;charset=UTF-8")
    @ResponseBody
    public String qryUser(){
        User user = new User();
        user.setUserName("LSL");
        user.setUserPwd("123@asd");
        user.setUserAddr("北京海淀");
        user.setUserAge(21);
        user.setUserTel("15803125588");
        LOG.info("用户信息:{}",user.toString());
        LOG.info("脱敏后的用户信息:{}", Utils.checkParams(user.toString()));
        return "success";
    }
}

结果截图:

        这种情况确实也能达到脱敏的目的,但是如果代码中有好多info日志输出,那么都需要改动,工作量太大,还容易拉下没有改动的地方。其实我们初期就是这种脱敏,反复改了好几次,总有遗漏的地方忘记改了。

        第二季:想研究一种省时省力的方式&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

一路奔跑1314

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

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

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

打赏作者

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

抵扣说明:

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

余额充值