🔥 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
Run:
composer require ankane/logstop
And add it to your Monolog logger:
$logger->pushProcessor(new Logstop\Processor());
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
);
- To scrub existing log files, check out scrubadub
- To scan for unencrypted personal data in your database, check out pdscan
View the changelog
Everyone is encouraged to help improve this project. Here are a few ways you can help:
- Report bugs
- Fix bugs and submit pull requests
- Write, clarify, or fix documentation
- Suggest or add new features
To get started with development:
git clone https://github.com/ankane/logstop-php.git
cd logstop-php
composer install
composer test