|  | #!/usr/bin/env python3 | 
|  |  | 
|  | # Copyright (c) 2019 - 2020 Nordic Semiconductor ASA | 
|  | # Copyright (c) 2019 Linaro Limited | 
|  | # Copyright (c) 2024 SILA Embedded Solutions GmbH | 
|  |  | 
|  | import logging | 
|  | import sys | 
|  |  | 
|  |  | 
|  | class LogFormatter(logging.Formatter): | 
|  | '''A log formatter that prints the level name in lower case, | 
|  | for compatibility with earlier versions of edtlib.''' | 
|  |  | 
|  | def __init__(self): | 
|  | super().__init__(fmt='%(levelnamelower)s: %(message)s') | 
|  |  | 
|  | def format(self, record): | 
|  | record.levelnamelower = record.levelname.lower() | 
|  | return super().format(record) | 
|  |  | 
|  |  | 
|  | def setup_edtlib_logging() -> None: | 
|  | # The edtlib module emits logs using the standard 'logging' module. | 
|  | # Configure it so that warnings and above are printed to stderr, | 
|  | # using the LogFormatter class defined above to format each message. | 
|  |  | 
|  | handler = logging.StreamHandler(sys.stderr) | 
|  | handler.setFormatter(LogFormatter()) | 
|  |  | 
|  | logger = logging.getLogger('edtlib') | 
|  | logger.setLevel(logging.WARNING) | 
|  | logger.addHandler(handler) |