Coverage for C:\src\imod-python\imod\logging\config.py: 100%
21 statements
« prev ^ index » next coverage.py v7.5.1, created at 2024-05-08 14:15 +0200
« prev ^ index » next coverage.py v7.5.1, created at 2024-05-08 14:15 +0200
1from enum import Enum
3import imod
5from .loglevel import LogLevel
6from .logurulogger import LoguruLogger
7from .nulllogger import NullLogger
8from .pythonlogger import PythonLogger
11class LoggerType(Enum):
12 """
13 The available logging frameworks.
14 """
16 PYTHON = PythonLogger.__name__
17 """
18 The default python logging framework.
19 """
20 LOGURU = LoguruLogger.__name__
21 """
22 The loguru logging framework.
23 """
24 NULL = NullLogger.__name__
25 """
26 A dummy logger that doesn't log anything.
27 """
30def configure(
31 logger_type: LoggerType,
32 log_level: LogLevel = LogLevel.WARNING,
33 add_default_stream_handler: bool = True,
34 add_default_file_handler: bool = False,
35) -> None:
36 """
37 Setup the logging framework and assign it a log level.
38 To add a default stream- and/or file-handler you can use the
39 ``add_default_stream_handler`` or ``add_default_file_handler`` flags. If a
40 default file-handler is added then the log output will be written to
41 the `imod-python.log` file
43 Parameters
44 ----------
45 logger_type : LoggerType
46 The logging framework to be used.
47 log_level : LogLevel
48 The log level to be set.
49 add_default_stream_handler : bool
50 A flag that specifies if a default stream-handler should be added.
51 True by default.
52 add_default_file_handler : bool
53 A flag that specifies if a default filehandler should be added.
54 The log will be written to `imod-python.log`. False by default.
55 """
56 match logger_type:
57 case LoggerType.PYTHON:
58 imod.logging.logger.instance = PythonLogger(
59 log_level, add_default_stream_handler, add_default_file_handler
60 )
61 case LoggerType.LOGURU:
62 imod.logging.logger.instance = LoguruLogger(
63 log_level, add_default_stream_handler, add_default_file_handler
64 )
65 case _:
66 imod.logging.logger.instance = NullLogger()