[
{ pattern: /\d{4}-\d{2}-\d{2}T?[ ]?\d{2}:\d{2}:\d{2}(\.\d+)?Z?/, replacement: "<TIMESTAMP>" },
{ pattern: /[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/i, replacement: "<UUID>" },
{ pattern: /Correlation Id: [\w]+/, replacement: "Correlation Id: <UUID>" },
{ pattern: /Fabrication of QA::Resource::[A-Za-z:]+/, replacement: "Fabrication of QA::Resource::<RESOURCE>" },
{ pattern: /\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:\d+)?\b/, replacement: "<IP>" },
{ pattern: /user\d+/, replacement: "<USER>" },
{ pattern: /group\d+/, replacement: "<GROUP>" },
{ pattern: /project\d+/, replacement: "<PROJECT>" },
{ pattern: %r{https?://[^/\s]+/[^\s]*}, replacement: "<URL>" },
{ pattern: %r{/tmp/[^\s]+}, replacement: "<TMPFILE>" },
{ pattern: %r{/var/[^\s]+}, replacement: "<VARFILE>" },
{ pattern: /token=[^\s&]+/, replacement: "token=<TOKEN>" },
{ pattern: /after \d+ seconds/, replacement: "after <N> seconds" },
{ pattern: /waited \d+ seconds/, replacement: "waited <N> seconds" },
{ pattern: /\d+ attempts?/, replacement: "<N> attempts" },
{ pattern: /\s+/, replacement: " " }
].freeze