diff --git a/counterparty-lib/counterpartylib/lib/api/api_server.py b/counterparty-lib/counterpartylib/lib/api/api_server.py index b5a5d01cdd..f97b215fec 100644 --- a/counterparty-lib/counterpartylib/lib/api/api_server.py +++ b/counterparty-lib/counterpartylib/lib/api/api_server.py @@ -1,6 +1,7 @@ import argparse import logging import multiprocessing +import signal from multiprocessing import Process from threading import Timer @@ -93,6 +94,10 @@ def handle_route(**kwargs): def run_api_server(args): + # default signal handlers + signal.signal(signal.SIGTERM, signal.SIG_DFL) + signal.signal(signal.SIGINT, signal.default_int_handler) + app = Flask(config.APP_NAME) # Initialise log and config server.initialise_log_and_config(argparse.Namespace(**args)) diff --git a/counterparty-lib/counterpartylib/lib/api/util.py b/counterparty-lib/counterpartylib/lib/api/util.py index be0e1cfa56..3585234367 100644 --- a/counterparty-lib/counterpartylib/lib/api/util.py +++ b/counterparty-lib/counterpartylib/lib/api/util.py @@ -91,7 +91,7 @@ def init_api_access_log(flask_app): flask_app.logger.removeHandler(flask.logging.default_handler) flask_app.logger.setLevel(logging.DEBUG) werkzeug_logger = logging.getLogger("werkzeug") - while werkzeug_logger.hasHandlers(): + while len(werkzeug_logger.handlers) > 0: werkzeug_logger.removeHandler(werkzeug_logger.handlers[0]) # Log to file, if configured... @@ -99,6 +99,7 @@ def init_api_access_log(flask_app): handler = logging_handlers.RotatingFileHandler( config.API_LOG, "a", config.API_MAX_LOG_SIZE, config.API_MAX_LOG_COUNT ) + handler.propagate = False handler.setLevel(logging.DEBUG) flask_app.logger.addHandler(handler) werkzeug_logger.addHandler(handler)