diff --git a/octoprint/server.py b/octoprint/server.py index d61d8b5..193b3ee 100644 --- a/octoprint/server.py +++ b/octoprint/server.py @@ -511,11 +511,20 @@ class Server(): "when": "D", "backupCount": "1", "filename": os.path.join(settings().getBaseFolder("logs"), "octoprint.log") + }, + "serialFile": { + "class": "logging.handlers.RotatingFileHandler", + "level": "DEBUG", + "formatter": "simple", + "maxBytes": 2 * 1024 * 1024, # let's limit the serial log to 2MB in size + "filename": os.path.join(settings().getBaseFolder("logs"), "serial.log") } }, "loggers": { - "octoprint.gcodefiles": { - "level": "DEBUG" + "SERIAL": { + "level": "DEBUG", + "handlers": ["serialFile"], + "propagate": False } }, "root": { diff --git a/octoprint/util/comm.py b/octoprint/util/comm.py index 807b86a..9be720a 100644 --- a/octoprint/util/comm.py +++ b/octoprint/util/comm.py @@ -9,6 +9,7 @@ import re import traceback import threading import Queue as queue +import logging import serial @@ -143,6 +144,9 @@ class MachineCom(object): STATE_CLOSED_WITH_ERROR = 10 def __init__(self, port = None, baudrate = None, callbackObject = None): + self._logger = logging.getLogger(__name__) + self._serialLogger = logging.getLogger("SERIAL") + if port == None: port = settings().get(["serial", "port"]) if baudrate == None: @@ -425,6 +429,7 @@ class MachineCom(object): def _log(self, message): self._callback.mcLog(message) + self._serialLogger.debug(message) try: self._logQueue.put(message, False) except: