80
80
def initialize(*, verbosity=0):
81
81
"""Initialize the loggers."""
87
}.get(verbosity, logging.ERROR)
88
level = min(level, config.system.loglevel)
89
# Make sure our library's logging uses {}-style messages.
90
logging.setLogRecordFactory(FormattingLogRecord)
91
# Now configure the application level logger based on the ini file.
92
log = logging.getLogger('systemimage')
94
handler = _make_handler(Path(config.system.logfile))
95
except PermissionError:
96
handler = _make_handler(
97
Path(xdg_cache_home) / 'system-image' / 'client.log')
98
handler.setLevel(level)
99
formatter = logging.Formatter(style='{', fmt=MSG_FMT, datefmt=DATE_FMT)
100
handler.setFormatter(formatter)
101
log.addHandler(handler)
102
log.propagate = False
103
# If we want more verbosity, add a stream handler.
108
handler = logging.StreamHandler(stream=sys.stderr)
109
handler.setLevel(level)
110
handler.setFormatter(formatter)
111
log.addHandler(handler)
112
# Set the overall level on the log object to the minimum level.
82
main, dbus = config.system.loglevel
83
for name, loglevel in (('systemimage', main), ('systemimage.dbus', dbus)):
89
}.get(verbosity, logging.ERROR)
90
level = min(level, loglevel)
91
# Make sure our library's logging uses {}-style messages.
92
logging.setLogRecordFactory(FormattingLogRecord)
93
# Now configure the application level logger based on the ini file.
94
log = logging.getLogger(name)
96
handler = _make_handler(Path(config.system.logfile))
97
except PermissionError:
98
handler = _make_handler(
99
Path(xdg_cache_home) / 'system-image' / 'client.log')
100
handler.setLevel(level)
101
formatter = logging.Formatter(style='{', fmt=MSG_FMT, datefmt=DATE_FMT)
102
handler.setFormatter(formatter)
103
log.addHandler(handler)
104
log.propagate = False
105
# If we want more verbosity, add a stream handler.
106
if verbosity == 0: # pragma: no branch
109
else: # pragma: no cover
110
handler = logging.StreamHandler(stream=sys.stderr)
111
handler.setLevel(level)
112
handler.setFormatter(formatter)
113
log.addHandler(handler)
114
# Set the overall level on the log object to the minimum level.
114
116
# Please be quiet gnupg.
115
117
gnupg_log = logging.getLogger('gnupg')
116
118
gnupg_log.propagate = False
122
def debug_logging(): # pragma: no cover
121
123
# getEffectiveLevel() is the best we can do, but it's good enough because
122
124
# we always set the level of the logger.
123
125
log = logging.getLogger('systemimage')