A newly released zato-enclog package lets one store Python logs in an encrypted form making it a great fit for environments that cannot keep clear text form of data such as PII (Personally Identifiable Information) in HIPAA-compliant applications.
The package comes with command-line tools to decrypt files, including a command that mimics tail -f functionality to watch decrypted logs as they grow.
Usage examples from Zato ..
from logging import getLogger from zato.server.service import Service enclog = getLogger('enclog') class MyService(Service): def handle(self): enclog.info('This will be encrypted')
.. and pure Python:
import logging from zato.enclog import EncryptedLogFormatter, genkey level = logging.INFO format = '%(levelname)s - %(message)s' key = genkey() formatter = EncryptedLogFormatter(key, format) handler = logging.StreamHandler() handler.setFormatter(formatter) logger = logging.getLogger('') logger.addHandler(handler) logger.setLevel(level) logger.info('This will be encrypted')
Using tailf -f vs. enclog tailf. The former will show logs in encrypted form whereas the latter will display them decrypted.
More information can be found at https://zato.io/docs/progguide/enclog/index.html