Allow enabling of serial logging at runtime

master
Gina Häußge 2013-06-30 22:18:29 +02:00
parent f14acf8ba7
commit 44f1f01001
4 changed files with 33 additions and 9 deletions

View File

@ -517,7 +517,8 @@ def getSettings():
"baudrate": connectionOptions["baudratePreference"],
"portOptions": connectionOptions["ports"],
"baudrateOptions": connectionOptions["baudrates"],
"autoconnect": s.getBoolean(["serial", "autoconnect"])
"autoconnect": s.getBoolean(["serial", "autoconnect"]),
"log": s.getBoolean(["serial", "log"])
},
"folder": {
"uploads": s.getBaseFolder("uploads"),
@ -576,6 +577,17 @@ def setSettings():
if "port" in data["serial"].keys(): s.set(["serial", "port"], data["serial"]["port"])
if "baudrate" in data["serial"].keys(): s.setInt(["serial", "baudrate"], data["serial"]["baudrate"])
oldLog = s.getBoolean(["serial", "log"])
if "log" in data["serial"].keys(): s.setBoolean(["serial", "log"], data["serial"]["log"])
if oldLog and not s.getBoolean(["serial", "log"]):
# disable debug logging to serial.log
logging.getLogger("SERIAL").debug("Disabling serial logging")
logging.getLogger("SERIAL").setLevel(logging.CRITICAL)
elif not oldLog and s.getBoolean(["serial", "log"]):
# enable debug logging to serial.log
logging.getLogger("SERIAL").setLevel(logging.DEBUG)
logging.getLogger("SERIAL").debug("Enabling serial logging")
if "folder" in data.keys():
if "uploads" in data["folder"].keys(): s.setBaseFolder("uploads", data["folder"]["uploads"])
if "timelapse" in data["folder"].keys(): s.setBaseFolder("timelapse", data["folder"]["timelapse"])
@ -901,7 +913,12 @@ class Server():
#},
#"octoprint.events": {
# "level": "DEBUG"
#}
#},
"SERIAL": {
"level": "CRITICAL",
"handlers": ["serialFile"],
"propagate": False
}
},
"root": {
"level": "INFO",
@ -910,11 +927,7 @@ class Server():
}
if debug:
config["loggers"]["SERIAL"] = {
"level": "DEBUG",
"handlers": ["serialFile"],
"propagate": False
}
config["loggers"]["root"]["level"] = "DEBUG"
logging.config.dictConfig(config)

View File

@ -26,7 +26,8 @@ default_settings = {
"serial": {
"port": None,
"baudrate": None,
"autoconnect": False
"autoconnect": False,
"log": False
},
"server": {
"host": "0.0.0.0",

View File

@ -1363,6 +1363,7 @@ function SettingsViewModel(loginStateViewModel, usersViewModel) {
self.serial_portOptions = ko.observableArray([]);
self.serial_baudrateOptions = ko.observableArray([]);
self.serial_autoconnect = ko.observable(undefined);
self.serial_log = ko.observable(undefined);
self.folder_uploads = ko.observable(undefined);
self.folder_timelapse = ko.observable(undefined);
@ -1420,6 +1421,7 @@ function SettingsViewModel(loginStateViewModel, usersViewModel) {
self.serial_portOptions(response.serial.portOptions);
self.serial_baudrateOptions(response.serial.baudrateOptions);
self.serial_autoconnect(response.serial.autoconnect);
self.serial_log(response.serial.log);
self.folder_uploads(response.folder.uploads);
self.folder_timelapse(response.folder.timelapse);
@ -1465,7 +1467,8 @@ function SettingsViewModel(loginStateViewModel, usersViewModel) {
"serial": {
"port": self.serial_port(),
"baudrate": self.serial_baudrate(),
"autoconnect": self.serial_autoconnect()
"autoconnect": self.serial_autoconnect(),
"log": self.serial_log()
},
"folder": {
"uploads": self.folder_uploads(),

View File

@ -39,6 +39,13 @@
</label>
</div>
</div>
<div class="control-group">
<div class="controls">
<label class="checkbox">
<input type="checkbox" data-bind="checked: serial_log" id="settings-serialLog"> Log communication to serial.log (might negatively impact performance) <span class="label label-important">Warning</span>
</label>
</div>
</div>
</form>
</div>
<div class="tab-pane" id="settings_printerParameters">