This function returns a logger instance with the specified name and the
given loglevel.
| Parameters: |
-
name
(Optional[str], default:
"Main"
)
–
Name of the logger. When None is provided, the root logger is returned.
-
level
(Literal['DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'], default:
"INFO"
)
–
Level to which the logger will be initialized. This level is ignored
if the logger already exists and has a level set.
|
Examples:
>>> logger = get_formatted_logger(name="test_logger", level="DEBUG")
>>> logger.info("Model training completed!")
Source code in aidevelopementtoolkit/logging_utils/logger.py
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51 | def get_formatted_logger(
name: Optional[str] = "Main",
level: Literal["DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"] = "INFO",
) -> logging.Logger:
"""This function returns a logger instance with the specified name and the
given loglevel.
Parameters
----------
name : Optional[str], default="Main"
Name of the logger. When `None` is provided, the root logger is returned.
level : Literal["DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"], default="INFO"
Level to which the logger will be initialized. **This level is ignored
if the logger already exists and has a level set**.
Returns
-------
logging.Logger
A logger instance.
Examples
--------
>>> logger = get_formatted_logger(name="test_logger", level="DEBUG")
>>> logger.info("Model training completed!")
"""
# Set logger
logger = logging.getLogger(name)
# If the logger already has handlers, we don't want to add another one.
if logger.hasHandlers():
return logger
handler = logging.StreamHandler()
# Set formatter
formatter = ColorFormatter(
"%(name)s %(asctime)s %(levelname)s %(message)s",
datefmt="%Y-%m-%d %H:%M:%S"
)
handler.setFormatter(formatter)
logger.addHandler(handler)
# Set log level
logger.setLevel(getattr(logging, level))
return logger
|