Redact log files before you share them
Drop .log or .txt files from a bug report or support ticket. User IDs, emails, IP addresses, tokens and passwords are replaced, and each value gets the same placeholder in every file — so one request still lines up across the gateway and the worker log.
Drop files here
Files are read in this tab and never uploaded.
- .json
- .csv
- .tsv
- .log
- .txt
Up to 10 files, 10.0 MB each, 30.0 MB in total. UTF-8 only.
One user, two log files
− before+ afterclient_ip=203.0.113.24 user=U5523 email=dana@example.comclient_ip=ip_001 user=user_001 email=person_001@example.invalidcharge failed user=U5523 order=ORD-88310charge failed user=user_001 order=order_001receipt queued for dana@example.com, order ORD-88310receipt queued for person_001@example.invalid, order order_001The last line has no key=: values already selected elsewhere are replaced in free text too.
How it works
Add files
Drop JSON, CSV or log files, or paste text. They are read in this tab; nothing is uploaded.
Choose what to hide
Suggestions find IDs, emails, names, order numbers and keys. Fields that hold the same values share one numbering.
Review & download
Compare before and after, check what may remain, then download the files with a short report.
What gets replaced in a log
ShareSafe reads each line as text and suggests rules from the key names it finds in key=value, key: value and "key": "value" form. Nothing is replaced until you enable a suggestion — Enable recommended & process does that in one click.
| Suggested for keys like | Before | After |
|---|---|---|
user, user_id, customer_id, account | user=U5523 | user=user_001 |
email, plus any email address | dana@example.com | person_001@example.invalid |
client_ip, remote_addr, ip | 203.0.113.24 | ip_001 |
order, invoice_id, txn | order=ORD-88310 | order=order_001 |
password, token, authorization, api_key, cookie | password=hunter2-demo | password=[REDACTED_PASSWORD] |
request_id, trace_id (optional, off by default) | request_id=req-7f3a2c | request_id=request_001 |
Everything else stays as it was: timestamps, log levels, paths, the number of lines and the line endings (LF, CRLF or CR). IDs become numbered placeholders, so you can still tell two users apart; credentials become a fixed marker.
What it does not do
- Names, street addresses and phone numbers written in free text (“called Dana on 555…”) are not detected. Add them as literal values.
- A secret without a key name in front of it, such as a bare
sk_live_…string, is only caught if the same value is selected somewhere else. JWTs andBearertokens are detected by pattern. - IPv6 addresses are not detected.
- Values with unusual quoting may not be picked up from their key; add a literal rule for them.
- UTF-8 only; up to 10 files, 10 MB each and 30 MB in total.
Questions
Does it handle JSON-lines (NDJSON) logs?
Yes, as text: save or rename the file as .log and "key": "value" pairs are matched on every line. There is no NDJSON-specific parsing yet. For a single JSON document, use the JSON redactor.
How can I check that nothing was missed?
After processing, the Checks tab lists values that still look like emails, IP addresses or tokens, and values that were replaced in one place but still appear in another. Downloads ask you to review them first. It is a second look, not a guarantee — read the output before you share it.
Can I get the original values back later?
No. The mapping lives in memory in this tab and is dropped when you refresh or clear the task; it cannot be exported.
Replacing selected values does not guarantee anonymity. Suggestions are hints, not a complete scan; review the output before sharing it.
Last reviewed .