Logging implementiert

This commit is contained in:
Thomas Hooge 2025-07-22 14:08:03 +02:00
parent dafcfaca6b
commit d7136e38bf
1 changed files with 34 additions and 1 deletions

View File

@ -84,6 +84,7 @@ Version Datum Änderung(en) von
import os import os
import sys import sys
import configparser import configparser
import logging, logging.handlers
from setproctitle import setproctitle, setthreadtitle from setproctitle import setproctitle, setthreadtitle
import gi import gi
gi.require_version('Gtk', '3.0') gi.require_version('Gtk', '3.0')
@ -633,9 +634,36 @@ def init_profile(config, cfg, boatdata):
clist[i] = c clist[i] = c
return clist return clist
def set_loglevel(nr):
"""
Umsetzen der Nummer auf einen für "logging" passenden Wert
Die Nummer kann ein Wert zwischen 0 - kein Logging und 5 - Debug sein
"""
level = (None, logging.CRITICAL, logging.ERROR, logging.WARNING,
logging.INFO, logging.DEBUG)
if nr > 5:
nr = 5
elif nr < 0:
nr = 0
return level[nr]
def init_logging(logdir):
global log
os.makedirs(logdir, exist_ok=True)
log = logging.getLogger(os.path.basename(sys.argv[0]))
hdlr = logging.handlers.RotatingFileHandler(os.path.join(logdir, 'obp60v.log'), maxBytes=5242880, backupCount=5)
formatter = logging.Formatter('%(asctime)s %(name)s %(levelname)s: %(message)s', datefmt='%Y-%m-%d %H:%M:%S')
hdlr.setFormatter(formatter)
log.addHandler(hdlr)
log.setLevel(logging.INFO)
console = logging.StreamHandler()
console.setFormatter(logging.Formatter('%(levelname)s:%(message)s'))
console.setLevel(logging.INFO)
log.addHandler(console)
if __name__ == "__main__": if __name__ == "__main__":
#setproctitle("obp60v") setproctitle("obp60v")
shutdown = False shutdown = False
@ -700,6 +728,11 @@ if __name__ == "__main__":
if cfg['simulation']: if cfg['simulation']:
boatdata.enableSimulation() boatdata.enableSimulation()
# Protokollierung
init_logging(os.path.expanduser("~/.local/share/obp60v"))
log.info("Logging initialized")
# Gerät initialisieren u.a. mit den genutzten Seiten
profile = init_profile(config, cfg, boatdata) profile = init_profile(config, cfg, boatdata)
# Schnittstellen aktivieren # Schnittstellen aktivieren