Log to journald

This commit is contained in:
Nicolas Duhamel 2021-02-23 16:30:35 +01:00
parent a009564b74
commit 4c7a4cbd36
2 changed files with 26 additions and 20 deletions

View File

@ -6,7 +6,9 @@ version = 0.0.1
package_dir = package_dir =
=src =src
packages = find_namespace: packages = find_namespace:
# install_requires = install_requires =
systemd-python==234
typer==0.3.2
[options.packages.find] [options.packages.find]
where = src where = src

View File

@ -9,6 +9,8 @@ from citadel.mqtt import Client
from .app import Yamaha from .app import Yamaha
from .senario import load_from_file, SENARIOS from .senario import load_from_file, SENARIOS
import systemd.journal
def main(\ def main(\
mqtt_user: str = typer.Option(... , envvar="YAMAHA_MQTT_USER"),\ mqtt_user: str = typer.Option(... , envvar="YAMAHA_MQTT_USER"),\
mqtt_pwd: str = typer.Option(... , envvar="YAMAHA_MQTT_PWD"),\ mqtt_pwd: str = typer.Option(... , envvar="YAMAHA_MQTT_PWD"),\
@ -17,9 +19,27 @@ def main(\
yamaha_host: str = typer.Option(... , envvar="YAMAHA_HOST"),\ yamaha_host: str = typer.Option(... , envvar="YAMAHA_HOST"),\
senarios_file: Optional[Path] = typer.Option(None, exists=True, senarios_file: Optional[Path] = typer.Option(None, exists=True,
file_okay=True, dir_okay=False, readable=True, resolve_path=True, file_okay=True, dir_okay=False, readable=True, resolve_path=True,
envvar="YAMAHA_SENARIOS")\ envvar="YAMAHA_SENARIOS"),\
is_systemd: bool = typer.Option(False, help="Is running as systemd unit", envvar="LAUNCHED_BY_SYSTEMD")\
): ):
if is_systemd:
logger = logging.getLogger('')
logger.setLevel(logging.DEBUG)
logger.addHandler(systemd.journal.JournalHandler())
else:
logger = logging.getLogger('')
logger.setLevel(logging.DEBUG)
# create console handler and set level to debug
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
# create formatter
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
# add formatter to ch
ch.setFormatter(formatter)
# add ch to logger
logger.addHandler(ch)
if senarios_file: if senarios_file:
load_from_file(senarios_file) load_from_file(senarios_file)
@ -29,25 +49,9 @@ def main(\
client.loop_forever() client.loop_forever()
if __name__ == "__main__": if __name__ == "__main__":
# create logger #deactivate urllib3 logger too verbose
logger = logging.getLogger('')
logger.setLevel(logging.DEBUG)
# create console handler and set level to debug
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
# create formatter
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
# add formatter to ch
ch.setFormatter(formatter)
# add ch to logger
logger.addHandler(ch)
#deactive urllib3 logger too verbose
logger = logging.getLogger('urllib3') logger = logging.getLogger('urllib3')
logger.setLevel(logging.ERROR) logger.setLevel(logging.ERROR)