From e8123a6ab1d4eab03153ee04515219eb9dd4bfe2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gina=20H=C3=A4u=C3=9Fge?= Date: Mon, 10 Oct 2016 19:27:18 +0200 Subject: [PATCH] Custom logging handler that cleans files on startup --- src/octoprint/logging/__init__.py | 4 ++++ src/octoprint/logging/handlers.py | 16 ++++++++++++++++ src/octoprint/server/__init__.py | 4 ++-- 3 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 src/octoprint/logging/__init__.py create mode 100644 src/octoprint/logging/handlers.py diff --git a/src/octoprint/logging/__init__.py b/src/octoprint/logging/__init__.py new file mode 100644 index 00000000..6e016b16 --- /dev/null +++ b/src/octoprint/logging/__init__.py @@ -0,0 +1,4 @@ +# coding=utf-8 +from __future__ import absolute_import + +from . import handlers diff --git a/src/octoprint/logging/handlers.py b/src/octoprint/logging/handlers.py new file mode 100644 index 00000000..ad4fcadb --- /dev/null +++ b/src/octoprint/logging/handlers.py @@ -0,0 +1,16 @@ +# coding=utf-8 +from __future__ import absolute_import + +import logging.handlers +import os + +class CleaningTimedRotatingFileHandler(logging.handlers.TimedRotatingFileHandler): + + def __init__(self, *args, **kwargs): + logging.handlers.TimedRotatingFileHandler.__init__(self, *args, **kwargs) + + # clean up old files on handler start + if self.backupCount > 0: + for s in self.getFilesToDelete(): + os.remove(s) + diff --git a/src/octoprint/server/__init__.py b/src/octoprint/server/__init__.py index 902930df..e74c19a8 100644 --- a/src/octoprint/server/__init__.py +++ b/src/octoprint/server/__init__.py @@ -574,11 +574,11 @@ class Server(object): "stream": "ext://sys.stdout" }, "file": { - "class": "logging.handlers.TimedRotatingFileHandler", + "class": "octoprint.logging.handlers.CleaningTimedRotatingFileHandler", "level": "DEBUG", "formatter": "simple", "when": "D", - "backupCount": "1", + "backupCount": 7, "filename": os.path.join(settings().getBaseFolder("logs"), "octoprint.log") }, "serialFile": {