moonraker: stop the background logger prior to exiting

This allows all records on the queue to be logged before exiting the program.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
This commit is contained in:
Arksine 2020-08-31 15:22:48 -04:00
parent 005caba234
commit 960334d087
2 changed files with 5 additions and 1 deletions

View File

@ -454,13 +454,14 @@ def main():
# Setup Logging # Setup Logging
log_file = os.path.normpath(os.path.expanduser(cmd_line_args.logfile)) log_file = os.path.normpath(os.path.expanduser(cmd_line_args.logfile))
cmd_line_args.logfile = log_file cmd_line_args.logfile = log_file
utils.setup_logging(log_file) ql = utils.setup_logging(log_file)
if sys.version_info < (3, 7): if sys.version_info < (3, 7):
msg = f"Moonraker requires Python 3.7 or above. " \ msg = f"Moonraker requires Python 3.7 or above. " \
f"Detected Version: {sys.version}" f"Detected Version: {sys.version}"
logging.info(msg) logging.info(msg)
print(msg) print(msg)
ql.stop()
exit(1) exit(1)
# Start IOLoop and Server # Start IOLoop and Server
@ -469,6 +470,7 @@ def main():
server = Server(cmd_line_args) server = Server(cmd_line_args)
except Exception: except Exception:
logging.exception("Moonraker Error") logging.exception("Moonraker Error")
ql.stop()
exit(1) exit(1)
try: try:
server.start() server.start()
@ -477,6 +479,7 @@ def main():
logging.exception("Server Running Error") logging.exception("Server Running Error")
io_loop.close(True) io_loop.close(True)
logging.info("Server Shutdown") logging.info("Server Shutdown")
ql.stop()
if __name__ == '__main__': if __name__ == '__main__':

View File

@ -80,3 +80,4 @@ def setup_logging(log_file):
file_hdlr.setFormatter(formatter) file_hdlr.setFormatter(formatter)
listener = logging.handlers.QueueListener(queue, file_hdlr) listener = logging.handlers.QueueListener(queue, file_hdlr)
listener.start() listener.start()
return listener