queuelogger: Automatically roll log file

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
Kevin O'Connor 2017-04-14 09:58:34 -04:00
parent 8920479f85
commit 839725e3c5
2 changed files with 4 additions and 7 deletions

View File

@ -26,9 +26,6 @@ Host user interaction
* Improve logging:
* Automatically roll Klippy log files. The default log file should
have the current date in the log file name.
* Possibly collate and report the statistics messages in the log in a
more friendly way.

View File

@ -1,9 +1,9 @@
# Code to implement asynchronous logging from a background thread
#
# Copyright (C) 2016 Kevin O'Connor <kevin@koconnor.net>
# Copyright (C) 2016,2017 Kevin O'Connor <kevin@koconnor.net>
#
# This file may be distributed under the terms of the GNU GPLv3 license.
import logging, threading, Queue
import logging, logging.handlers, threading, Queue
# Class to forward all messages through a queue to a background thread
class QueueHandler(logging.Handler):
@ -38,8 +38,8 @@ class QueueListener(object):
self.thread.join()
def setup_bg_logging(filename, debuglevel):
logoutput = open(filename, 'wb')
handler = logging.StreamHandler(logoutput)
handler = logging.handlers.TimedRotatingFileHandler(
filename, when='midnight', backupCount=5)
ql = QueueListener(handler)
qh = QueueHandler(ql.queue)
root = logging.getLogger()