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"], "baudrate": connectionOptions["baudratePreference"],
"portOptions": connectionOptions["ports"], "portOptions": connectionOptions["ports"],
"baudrateOptions": connectionOptions["baudrates"], "baudrateOptions": connectionOptions["baudrates"],
"autoconnect": s.getBoolean(["serial", "autoconnect"]) "autoconnect": s.getBoolean(["serial", "autoconnect"]),
"log": s.getBoolean(["serial", "log"])
}, },
"folder": { "folder": {
"uploads": s.getBaseFolder("uploads"), "uploads": s.getBaseFolder("uploads"),
@ -576,6 +577,17 @@ def setSettings():
if "port" in data["serial"].keys(): s.set(["serial", "port"], data["serial"]["port"]) 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"]) 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 "folder" in data.keys():
if "uploads" in data["folder"].keys(): s.setBaseFolder("uploads", data["folder"]["uploads"]) if "uploads" in data["folder"].keys(): s.setBaseFolder("uploads", data["folder"]["uploads"])
if "timelapse" in data["folder"].keys(): s.setBaseFolder("timelapse", data["folder"]["timelapse"]) if "timelapse" in data["folder"].keys(): s.setBaseFolder("timelapse", data["folder"]["timelapse"])
@ -901,7 +913,12 @@ class Server():
#}, #},
#"octoprint.events": { #"octoprint.events": {
# "level": "DEBUG" # "level": "DEBUG"
#} #},
"SERIAL": {
"level": "CRITICAL",
"handlers": ["serialFile"],
"propagate": False
}
}, },
"root": { "root": {
"level": "INFO", "level": "INFO",
@ -910,11 +927,7 @@ class Server():
} }
if debug: if debug:
config["loggers"]["SERIAL"] = { config["loggers"]["root"]["level"] = "DEBUG"
"level": "DEBUG",
"handlers": ["serialFile"],
"propagate": False
}
logging.config.dictConfig(config) logging.config.dictConfig(config)

View File

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

View File

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

View File

@ -39,6 +39,13 @@
</label> </label>
</div> </div>
</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> </form>
</div> </div>
<div class="tab-pane" id="settings_printerParameters"> <div class="tab-pane" id="settings_printerParameters">