1#!/usr/bin/env python3 2 3# Copyright (c) 2019 - 2020 Nordic Semiconductor ASA 4# Copyright (c) 2019 Linaro Limited 5# Copyright (c) 2024 SILA Embedded Solutions GmbH 6 7import logging 8import sys 9 10 11class LogFormatter(logging.Formatter): 12 '''A log formatter that prints the level name in lower case, 13 for compatibility with earlier versions of edtlib.''' 14 15 def __init__(self): 16 super().__init__(fmt='%(levelnamelower)s: %(message)s') 17 18 def format(self, record): 19 record.levelnamelower = record.levelname.lower() 20 return super().format(record) 21 22 23def setup_edtlib_logging() -> None: 24 # The edtlib module emits logs using the standard 'logging' module. 25 # Configure it so that warnings and above are printed to stderr, 26 # using the LogFormatter class defined above to format each message. 27 28 handler = logging.StreamHandler(sys.stderr) 29 handler.setFormatter(LogFormatter()) 30 31 logger = logging.getLogger('edtlib') 32 logger.setLevel(logging.WARNING) 33 logger.addHandler(handler) 34