From d0ff64970719d2a00a36505f61692e767ff1a602 Mon Sep 17 00:00:00 2001 From: Nicholas Albion Date: Fri, 29 Sep 2023 18:17:43 +1000 Subject: [PATCH] Don't log password & api-key --- pilot/logger/logger.py | 24 ++++++++++++++++++++++-- pilot/main.py | 2 +- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/pilot/logger/logger.py b/pilot/logger/logger.py index a2b054b..3e19c78 100644 --- a/pilot/logger/logger.py +++ b/pilot/logger/logger.py @@ -8,18 +8,38 @@ def setup_logger(): # Create a log handler for file output file_handler = logging.FileHandler(filename=os.path.join(os.path.dirname(__file__), 'debug.log'), mode='w') - file_handler.setLevel(logging.DEBUG) # Apply the custom format to the handler formatter = logging.Formatter(log_format) file_handler.setFormatter(formatter) + # file_handler.addFilter(lambda record: record.levelno <= logging.INFO) + file_handler.addFilter(filter_sensitive_fields) # Create a logger and add the handler logger = logging.getLogger() - logger.setLevel(logging.DEBUG) logger.addHandler(file_handler) + if os.getenv('DEBUG') == 'true': + logger.setLevel(logging.DEBUG) + else: + logger.setLevel(logging.INFO) + return logger +sensitive_fields = ['--api-key', 'password'] + + +def filter_sensitive_fields(record): + if len(record.args): + args = record.args.copy() + + for field in sensitive_fields: + if field in args: + args[field] = '*****' + + record.args = args + return record.levelno <= logging.INFO + + logger = setup_logger() diff --git a/pilot/main.py b/pilot/main.py index 36076cb..027df7a 100644 --- a/pilot/main.py +++ b/pilot/main.py @@ -32,7 +32,7 @@ def init(): arguments = get_arguments() - logger.info(f"Starting with args: {arguments}") + logger.info('Starting with args: %s', arguments) return arguments