Coverage for fastagency/logging.py: 100%

4 statements  

« prev     ^ index     » next       coverage.py v7.8.0, created at 2025-04-19 12:16 +0000

1import logging 1abcdefghi

2 

3__all__ = ["get_logger"] 1abcdefghi

4 

5 

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. 

10 

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

19 

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

25 

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

31 

32 # Add the handler to the logger 

33 logger.addHandler(handler) 1abcdefghi

34 

35 return logger 1abcdefghi