diff --git a/aprsd/cmds/webchat.py b/aprsd/cmds/webchat.py index 18a2385..a059e8f 100644 --- a/aprsd/cmds/webchat.py +++ b/aprsd/cmds/webchat.py @@ -22,7 +22,6 @@ import aprsd from aprsd import ( cli_helper, client, packets, plugin_utils, stats, threads, utils, ) -from aprsd.log import log from aprsd.main import cli from aprsd.threads import aprsd as aprsd_threads from aprsd.threads import rx, tx @@ -571,8 +570,6 @@ class SendMessageNamespace(Namespace): def init_flask(loglevel, quiet): global socketio, flask_app - log.setup_logging(loglevel, quiet) - socketio = SocketIO( flask_app, logger=False, engineio_logger=False, async_mode="threading", diff --git a/aprsd/conf/common.py b/aprsd/conf/common.py index dd2794a..dc27776 100644 --- a/aprsd/conf/common.py +++ b/aprsd/conf/common.py @@ -225,6 +225,11 @@ webchat_opts = [ default=None, help="Longitude for the GPS Beacon button. If not set, the button will not be enabled.", ), + cfg.BoolOpt( + "disable_url_request_logging", + default=False, + help="Disable the logging of url requests in the webchat command.", + ), ] registry_opts = [ diff --git a/aprsd/log/log.py b/aprsd/log/log.py index 149c84b..692b4ec 100644 --- a/aprsd/log/log.py +++ b/aprsd/log/log.py @@ -36,6 +36,7 @@ class InterceptHandler(logging.Handler): # to disable log to stdout, but still log to file # use the --quiet option on the cmdln def setup_logging(loglevel=None, quiet=False): + print(f"setup_logging: loglevel={loglevel}, quiet={quiet}") if not loglevel: log_level = CONF.logging.log_level else: @@ -54,9 +55,13 @@ def setup_logging(loglevel=None, quiet=False): "aprslib.parsing", "aprslib.exceptions", ] + webserver_list = [ + "werkzeug", + "werkzeug._internal", + ] # We don't really want to see the aprslib parsing debug output. - disable_list = imap_list + aprslib_list + disable_list = imap_list + aprslib_list + webserver_list # remove every other logger's handlers # and propagate to root logger @@ -67,9 +72,17 @@ def setup_logging(loglevel=None, quiet=False): else: logging.getLogger(name).propagate = True + if CONF.webchat.disable_url_request_logging: + for name in webserver_list: + logging.getLogger(name).handlers = [] + logging.getLogger(name).propagate = True + logging.getLogger(name).setLevel(logging.ERROR) + + handlers = [ { - "sink": sys.stdout, "serialize": False, + "sink": sys.stdout, + "serialize": False, "format": CONF.logging.logformat, "colorize": True, "level": log_level, @@ -78,8 +91,11 @@ def setup_logging(loglevel=None, quiet=False): if CONF.logging.logfile: handlers.append( { - "sink": CONF.logging.logfile, "serialize": False, + "sink": CONF.logging.logfile, + "serialize": False, "format": CONF.logging.logformat, + "colorize": False, + "level": log_level, }, ) @@ -93,6 +109,8 @@ def setup_logging(loglevel=None, quiet=False): { "sink": qh, "serialize": False, "format": CONF.logging.logformat, + "level": log_level, + "colorize": False, }, )