Coverage for fastagency/logging.py: 100%
4 statements
« prev ^ index » next coverage.py v7.8.0, created at 2025-04-19 12:16 +0000
« prev ^ index » next coverage.py v7.8.0, created at 2025-04-19 12:16 +0000
1import logging 1abcdefghi
3__all__ = ["get_logger"] 1abcdefghi
6def get_logger( 1abcdefghi
7 name: str, *, level: int = logging.INFO, use_timestamp: bool = True
8) -> logging.Logger:
9 """Return a logger with the specified name.
11 Args:
12 name (str): The name of the logger
13 level (int): The level of the logger
14 use_timestamp (bool): Whether to use a timestamp in the log messages
15 """
16 # Get the logger
17 logger = logging.getLogger(__name__) 1abcdefghi
18 logger.setLevel(level) 1abcdefghi
20 # Check if the logger already has handlers
21 if not logger.handlers: 1abcdefghi
22 # Create a stream handler
23 handler = logging.StreamHandler() 1abcdefghi
24 handler.setLevel(level) 1abcdefghi
26 # Create a formatter and set it for the handler
27 formatter = logging.Formatter( 1abcdefghi
28 f"{'%(asctime)s' if use_timestamp else ''} [%(levelname)s] %(message)s"
29 )
30 handler.setFormatter(formatter) 1abcdefghi
32 # Add the handler to the logger
33 logger.addHandler(handler) 1abcdefghi
35 return logger 1abcdefghi