BonPrinter
v1.2.0
Thermal Printer tool
Loading...
Searching...
No Matches
app_log.py
Go to the documentation of this file.
1
"""!
2
********************************************************************************
3
@file app_log.py
4
@brief Logging class to store and manage log configuration
5
********************************************************************************
6
"""
7
8
import
logging
9
from
typing
import
TYPE_CHECKING
10
11
from
Source.version
import
__title__
12
from
Source.Util.colored_log
import
get_format, ColorFormatter, S_LOG_DATE_FORMAT
13
from
Source.Util.app_data
import
write_verbosity_settings
14
if
TYPE_CHECKING:
15
from
Source.Controller.main_window
import
MainWindow
16
17
log = logging.getLogger(__title__)
18
formatter = logging.Formatter(fmt=get_format(line_no=
False
, threads=
False
), datefmt=S_LOG_DATE_FORMAT)
19
color_formatter =
ColorFormatter
(line_no=
True
, threads=
True
, data_format=
None
)
20
21
S_LOGGING_FILE =
"app_log.log"
22
23
24
class
LogConfig
:
25
"""!
26
@brief Log configuration. Supports dynamic change of log level
27
@param i_log_level : integer representing the initial log level
28
"""
29
30
def
__init__
(self, i_log_level: int) ->
None
:
31
self.
ui
:
"MainWindow | None"
=
None
32
self.
i_log_level
= i_log_level
33
self.
root_logger
= logging.getLogger()
34
35
# Clear existing handlers
36
self.
root_logger
.handlers.clear()
37
38
# initialize console handler to print log messages to stdout stream
39
console_handler = logging.StreamHandler()
40
console_handler.setFormatter(color_formatter)
41
console_handler.setLevel(self.
i_log_level
)
42
self.
root_logger
.addHandler(console_handler)
43
44
# save log messages additionally to a log file
45
file_handler = logging.FileHandler(S_LOGGING_FILE)
46
file_handler.setFormatter(formatter)
47
file_handler.setLevel(self.
i_log_level
)
48
self.
root_logger
.addHandler(file_handler)
49
50
def
update_log_level
(self, i_log_level: int) ->
None
:
51
"""!
52
@brief Sets a new log level for all handlers
53
@param i_log_level : new log level
54
"""
55
s_text = f
"Verbosity set to {logging.getLevelName(i_log_level)}"
56
l_text = [s_text, f
"Verbosität eingestellt auf {logging.getLevelName(i_log_level)}"
]
57
if
self.
ui
is
not
None
:
58
self.
ui
.set_status(l_text)
59
else
:
60
log.debug(s_text)
61
62
self.
i_log_level
= i_log_level
63
self.
root_logger
.setLevel(i_log_level)
64
# update log level for each log handler
65
for
handler
in
self.
root_logger
.handlers:
66
handler.setLevel(i_log_level)
67
write_verbosity_settings(self.
i_log_level
)
Source.Util.app_log.LogConfig
Log configuration.
Definition
app_log.py:24
Source.Util.app_log.LogConfig.i_log_level
i_log_level
Definition
app_log.py:32
Source.Util.app_log.LogConfig.update_log_level
None update_log_level(self, int i_log_level)
Sets a new log level for all handlers.
Definition
app_log.py:50
Source.Util.app_log.LogConfig.ui
ui
Definition
app_log.py:31
Source.Util.app_log.LogConfig.__init__
None __init__(self, int i_log_level)
Definition
app_log.py:30
Source.Util.app_log.LogConfig.root_logger
root_logger
Definition
app_log.py:33
Source.Util.colored_log.ColorFormatter
Logging formatter that colors logging messages depending on their level.
Definition
colored_log.py:69
Source.Controller.main_window
Definition
main_window.py:1
Source.Util.app_data
Definition
app_data.py:1
Source.Util.colored_log
Definition
colored_log.py:1
Source.version
Definition
version.py:1
Source
Util
app_log.py
Generated on
for BonPrinter by
1.14.0