From 9c6803be486ce3b9485dc09a089ca51ada2a0acf Mon Sep 17 00:00:00 2001 From: Freezed <2160318-free_zed@users.noreply.gitlab.com> Date: Wed, 26 Oct 2022 00:22:03 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20Add=20a=20logger?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.py | 50 +++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 45 insertions(+), 5 deletions(-) diff --git a/main.py b/main.py index 0b7b426..0f0b5ec 100755 --- a/main.py +++ b/main.py @@ -12,9 +12,48 @@ This file is part of [``]() """ import argparse -from os import environ +import logging +import logging.handlers +from os import environ, path import sys -from pprint import pprint as pp + + +logger = logging.getLogger(path.splitext(path.basename(sys.argv[0]))[0]) + + +def setup_logging(options): + """Configure logging.""" + root = logging.getLogger("") + logger.setLevel(options.debug and logging.DEBUG or logging.INFO) + format_debug = "%(levelname)s\t[%(name)s] %(message)s" + format_default = "%(message)s" + + if options.debug: + # Logging with --debug option + + if not sys.stderr.isatty(): + # Logging in a file when launched not in a terminal + + facility = logging.handlers.SysLogHandler.LOG_DAEMON + handler_syslog = logging.handlers.SysLogHandler( + address="/dev/log", facility=facility + ) + handler_syslog.setFormatter(logging.Formatter(format_default)) + root.addHandler(handler_syslog) + + else: + # Logging on terminal standard output + + handler_console = logging.StreamHandler() + handler_console.setFormatter(logging.Formatter(format_debug)) + root.addHandler(handler_console) + + else: + # Logging default setings + + handler_console = logging.StreamHandler() + handler_console.setFormatter(logging.Formatter(format_default)) + root.addHandler(handler_console) class CustomFormatter( @@ -110,15 +149,16 @@ def main(): 2 """ pargs = parse_args() + setup_logging(pargs) if pargs.foo: - pp(i_am_foo()) + logger.info(i_am_foo()) elif pargs.bar: - pp(i_am_bar(pargs.bar)) + logger.info(i_am_bar(pargs.bar)) if pargs.debug and pargs: - pp(pargs) + logger.debug(pargs) if __name__ == "__main__":