我有一个包含敏感信息的课程(信用卡信息,电话号码等).
我希望能够将此类传递给log4j,但让它隐藏某些信息.
如果我有一个具有getPhoneNumber,getCreditCardNumber方法的UserInformation类,我将如何自定义log4j或此类以使其正确地模糊数字.
我希望信用卡号输出为xxxx-xxxx-xxxx-1234,输出的电话号码为xxxx-xxx-xxx,假设这些号码为1234-1234-1234-1234和1234-567-890
谢谢
您可以尝试通过编写隐藏这些模式的自定义日志记录格式化程序来实现此目的.但我认为这有点狡猾...因为有人可能通过调整记录器配置文件等意外或故意绕过这个.
我认为最好根据您组装日志消息的方式执行以下操作之一:
UserInformation从而模糊敏感字段.toString方法UserInformation以隐藏细节.