Class LogSanitizer

java.lang.Object
io.github.theword.queqiao.core.utils.LogSanitizer

public final class LogSanitizer extends Object
日志脱敏工具

纯逻辑组件:不依赖网络、线程与全局状态,可独立单元测试。

用途:把可能包含敏感信息的 JSON 文本转换为可安全写入日志的形式——

  1. 按字段名脱敏(token / password / authorization 等,递归处理嵌套对象与数组)
  2. 按长度截断

能力边界:脱敏是"按已知字段名"的尽力而为。字段名不在清单内的敏感内容无法被识别, 因此长度截断是最后一道兜底,不应被移除。

本类在任何输入下都不抛异常——日志路径上的工具一旦抛异常会掩盖真正的问题。

Since:
0.6.11
  • Field Details

    • DEFAULT_MAX_LENGTH

      public static final int DEFAULT_MAX_LENGTH
      默认最大输出长度
      See Also:
  • Method Details

    • sanitize

      public static String sanitize(String rawJsonMessage)
      脱敏并截断(使用默认长度上限)
      Parameters:
      rawJsonMessage - 原始文本,允许为 null
      Returns:
      可安全写入日志的文本
    • sanitize

      public static String sanitize(String rawJsonMessage, int maxLength)
      脱敏并截断
      Parameters:
      rawJsonMessage - 原始文本,允许为 null
      maxLength - 输出长度上限,小于 1 时按 1 处理
      Returns:
      可安全写入日志的文本