ankane/logstop

Keep personal data out of your logs

v0.1.2 2023-02-11 19:00 UTC

This package is not auto-updated.

Last update: 2024-11-03 03:10:23 UTC


README

🔥 Keep personal data out of your logs

$logger->info('Hi test@example.org!');
# Hi [FILTERED]!

By default, scrubs:

  • email addresses
  • phone numbers
  • credit card numbers
  • Social Security numbers (SSNs)
  • passwords in URLs

Works with context as well

$logger->info('Hi', ['email' => 'test@example.org']);
# Hi {"email":"[FILTERED]"}

Works even when sensitive data is URL-encoded with plus encoding

Build Status

Installation

Run:

composer require ankane/logstop

And add it to your Monolog logger:

$logger->pushProcessor(new Logstop\Processor());

Options

To scrub IP addresses (IPv4), use:

new Logstop\Processor(ip: true);

To scrub MAC addresses, use:

new Logstop\Processor(mac: true);

Disable default rules with:

new Logstop\Processor(
    email: false,
    phone: false,
    creditCard: false,
    ssn: false,
    urlPassword: false
);

Notes

  • To scrub existing log files, check out scrubadub
  • To scan for unencrypted personal data in your database, check out pdscan

History

View the changelog

Contributing

Everyone is encouraged to help improve this project. Here are a few ways you can help:

To get started with development:

git clone https://github.com/ankane/logstop-php.git
cd logstop-php
composer install
composer test