import logging
[docs]
class NullHandler(logging.Handler):
[docs]
def emit(self, record):
pass
[docs]
class LogFilter(logging.Filter):
[docs]
def __init__(self, files_to_filter):
self.files = files_to_filter
[docs]
def filter(self, record: logging.LogRecord) -> bool:
if record.filename in self.files:
return True
return False
[docs]
def set_logger(args):
log_level = logging.ERROR # Default to ERROR
if args.debug == "INFO":
log_level = logging.INFO
elif args.debug == "WARNING":
log_level = logging.WARNING
elif args.debug == "DEBUG":
log_level = logging.DEBUG
else:
log_level = logging.ERROR
logger = logging.getLogger()
logger.setLevel(log_level)
logging.getLogger("androguard").addHandler(NullHandler())
logging.getLogger("requests").setLevel(logging.WARNING)
logging.getLogger("urllib3").setLevel(logging.WARNING)
if args.filter is not None:
log_filter = LogFilter(args.filter)
logger.addFilter(log_filter)
# Remove all handlers associated with the logger object.
for handler in logger.handlers[:]:
logger.removeHandler(handler)
# Create a console handler with the custom formatter
console_handler = logging.StreamHandler()
console_handler.setFormatter(CustomFormatter())
logger.addHandler(console_handler)