java - 为敏感数据自定义 log4j 日志记录

标签 java log4j

我有一个包含敏感信息(信用卡信息、电话号码等)的类。

我希望能够将此类传递给 log4j,但让它隐藏某些信息。

如果我有一个具有 getPhoneNumber、getCreditCardNumber 方法的 UserInformation 类,我将如何自定义 log4j 或此类,以便它正确地隐藏数字。

我希望信用卡号输出为 xxxx-xxxx-xxxx-1234,电话号码输出为 xxxx-xxx-xxx,因为它们分别是 1234-1234-1234-1234 和 1234-567- 890

谢谢

最佳答案

您可以尝试通过编写一个隐藏这些模式的自定义日志记录格式化程序来实现这一点。但我认为这有点狡猾……因为有人可能会通过调整记录器配置文件等无意或有意地规避这一点。

我认为最好执行以下操作之一,具体取决于您如何组装日志消息:

  • 在您的代码中更改记录器调用,以使用替代的 getter 方法在隐藏敏感字段的 UserInformation 上组装日志消息。
  • 更改 UserInformation 上的 toString 方法以隐藏详细信息。

关于java - 为敏感数据自定义 log4j 日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2817956/

相关文章:

java - 在 GAE 中使用 Log4j 2 的问题

java - 我无法在主类中获取 JPanel 的背景颜色

java - 将 FutureTask 转换为 ScheduledFuture

java - 我应该在 HTTPClass 中的哪里实现这个 Jackson Root Element 代码?

java - 如何限制 log4j 控制台附加程序仅在本地主机上登录

java - 添加log4J库到构建路径失败?

java - Log4j 在属性文件中找不到配置

java - 泛型数组创建

java - session 集属性不起作用

java - log4j 输出被抑制?