server: deprecate debug logging option
Add a debug option to the command line to enable debug features. Signed-off-by: Eric Callahan <arksine.code@gmail.com>
This commit is contained in:
parent
d2cbd1d0a0
commit
86fc1057f7
|
@ -194,9 +194,8 @@ class MoonrakerApp:
|
||||||
mimetypes.add_type('text/plain', '.gcode')
|
mimetypes.add_type('text/plain', '.gcode')
|
||||||
mimetypes.add_type('text/plain', '.cfg')
|
mimetypes.add_type('text/plain', '.cfg')
|
||||||
|
|
||||||
self.debug = self.server.is_debug_enabled()
|
|
||||||
app_args: Dict[str, Any] = {
|
app_args: Dict[str, Any] = {
|
||||||
'serve_traceback': self.debug,
|
'serve_traceback': self.server.is_verbose_enabled(),
|
||||||
'websocket_ping_interval': 10,
|
'websocket_ping_interval': 10,
|
||||||
'websocket_ping_timeout': 30,
|
'websocket_ping_timeout': 30,
|
||||||
'server': self.server,
|
'server': self.server,
|
||||||
|
@ -275,7 +274,10 @@ class MoonrakerApp:
|
||||||
|
|
||||||
def log_request(self, handler: tornado.web.RequestHandler) -> None:
|
def log_request(self, handler: tornado.web.RequestHandler) -> None:
|
||||||
status_code = handler.get_status()
|
status_code = handler.get_status()
|
||||||
if not self.debug and status_code in [200, 204, 206, 304]:
|
if (
|
||||||
|
not self.server.is_verbose_enabled()
|
||||||
|
and status_code in [200, 204, 206, 304]
|
||||||
|
):
|
||||||
# don't log successful requests in release mode
|
# don't log successful requests in release mode
|
||||||
return
|
return
|
||||||
if status_code < 400:
|
if status_code < 400:
|
||||||
|
@ -620,7 +622,7 @@ class DynamicRequestHandler(AuthorizedRequestHandler):
|
||||||
return args
|
return args
|
||||||
|
|
||||||
def _log_debug(self, header: str, args: Any) -> None:
|
def _log_debug(self, header: str, args: Any) -> None:
|
||||||
if self.server.is_debug_enabled():
|
if self.server.is_verbose_enabled():
|
||||||
resp = args
|
resp = args
|
||||||
if isinstance(args, dict):
|
if isinstance(args, dict):
|
||||||
if (
|
if (
|
||||||
|
|
|
@ -1162,7 +1162,6 @@ class INotifyHandler:
|
||||||
) -> None:
|
) -> None:
|
||||||
self.server = config.get_server()
|
self.server = config.get_server()
|
||||||
self.event_loop = self.server.get_event_loop()
|
self.event_loop = self.server.get_event_loop()
|
||||||
self.debug_enabled = self.server.is_debug_enabled()
|
|
||||||
self.enable_warn = config.getboolean("enable_inotify_warnings", True)
|
self.enable_warn = config.getboolean("enable_inotify_warnings", True)
|
||||||
self.file_manager = file_manager
|
self.file_manager = file_manager
|
||||||
self.gcode_metadata = gcode_metadata
|
self.gcode_metadata = gcode_metadata
|
||||||
|
@ -1306,7 +1305,7 @@ class INotifyHandler:
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def log_nodes(self) -> None:
|
def log_nodes(self) -> None:
|
||||||
if self.debug_enabled:
|
if self.server.is_verbose_enabled():
|
||||||
debug_msg = f"Inotify Watches After Scan:"
|
debug_msg = f"Inotify Watches After Scan:"
|
||||||
for wdesc, node in self.watched_nodes.items():
|
for wdesc, node in self.watched_nodes.items():
|
||||||
wdir = node.get_path()
|
wdir = node.get_path()
|
||||||
|
|
|
@ -1521,6 +1521,10 @@ class InstallValidator:
|
||||||
key_dest = certs_path.joinpath("moonraker.key")
|
key_dest = certs_path.joinpath("moonraker.key")
|
||||||
self._link_data_file(key_dest, ssl_key)
|
self._link_data_file(key_dest, ssl_key)
|
||||||
cfg_source.remove_option("server", "ssl_key_path")
|
cfg_source.remove_option("server", "ssl_key_path")
|
||||||
|
|
||||||
|
# Remove deprecated debug option
|
||||||
|
if server_cfg.has_option("enable_debug_logging"):
|
||||||
|
cfg_source.remove_option("server", "enable_debug_logging")
|
||||||
except Exception:
|
except Exception:
|
||||||
cfg_source.cancel()
|
cfg_source.cancel()
|
||||||
raise
|
raise
|
||||||
|
|
|
@ -1404,7 +1404,7 @@ class WebcamStream:
|
||||||
except asyncio.CancelledError:
|
except asyncio.CancelledError:
|
||||||
raise
|
raise
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
if not self.server.is_debug_enabled():
|
if not self.server.is_verbose_enabled():
|
||||||
return
|
return
|
||||||
logging.exception("SimplyPrint WebCam Stream Error")
|
logging.exception("SimplyPrint WebCam Stream Error")
|
||||||
|
|
||||||
|
@ -1628,7 +1628,7 @@ class ProtoLogger:
|
||||||
def __init__(self, config: ConfigHelper) -> None:
|
def __init__(self, config: ConfigHelper) -> None:
|
||||||
server = config.get_server()
|
server = config.get_server()
|
||||||
self._logger: Optional[logging.Logger] = None
|
self._logger: Optional[logging.Logger] = None
|
||||||
if not config["server"].getboolean("enable_debug_logging", False):
|
if not server.is_verbose_enabled():
|
||||||
return
|
return
|
||||||
fm: FileManager = server.lookup_component("file_manager")
|
fm: FileManager = server.lookup_component("file_manager")
|
||||||
log_root = fm.get_directory("logs")
|
log_root = fm.get_directory("logs")
|
||||||
|
|
|
@ -41,7 +41,6 @@ class AppDeploy(BaseDeploy):
|
||||||
def __init__(self, config: ConfigHelper, cmd_helper: CommandHelper) -> None:
|
def __init__(self, config: ConfigHelper, cmd_helper: CommandHelper) -> None:
|
||||||
super().__init__(config, cmd_helper, prefix="Application")
|
super().__init__(config, cmd_helper, prefix="Application")
|
||||||
self.config = config
|
self.config = config
|
||||||
self.debug = self.cmd_helper.is_debug_enabled()
|
|
||||||
type_choices = list(TYPE_TO_CHANNEL.keys())
|
type_choices = list(TYPE_TO_CHANNEL.keys())
|
||||||
self.type = config.get('type').lower()
|
self.type = config.get('type').lower()
|
||||||
if self.type not in type_choices:
|
if self.type not in type_choices:
|
||||||
|
@ -224,7 +223,7 @@ class AppDeploy(BaseDeploy):
|
||||||
def get_update_status(self) -> Dict[str, Any]:
|
def get_update_status(self) -> Dict[str, Any]:
|
||||||
return {
|
return {
|
||||||
'channel': self.channel,
|
'channel': self.channel,
|
||||||
'debug_enabled': self.debug,
|
'debug_enabled': self.server.is_debug_enabled(),
|
||||||
'need_channel_update': self.need_channel_update,
|
'need_channel_update': self.need_channel_update,
|
||||||
'is_valid': self._is_valid,
|
'is_valid': self._is_valid,
|
||||||
'configured_type': self.type,
|
'configured_type': self.type,
|
||||||
|
|
|
@ -67,7 +67,7 @@ class GitDeploy(AppDeploy):
|
||||||
msgs = '\n'.join(invalids)
|
msgs = '\n'.join(invalids)
|
||||||
self.log_info(
|
self.log_info(
|
||||||
f"Repo validation checks failed:\n{msgs}")
|
f"Repo validation checks failed:\n{msgs}")
|
||||||
if self.debug:
|
if self.server.is_debug_enabled():
|
||||||
self._is_valid = True
|
self._is_valid = True
|
||||||
self.log_info(
|
self.log_info(
|
||||||
"Repo debug enabled, overriding validity checks")
|
"Repo debug enabled, overriding validity checks")
|
||||||
|
@ -402,7 +402,7 @@ class GitRepo:
|
||||||
if not detected_origin.endswith(".git"):
|
if not detected_origin.endswith(".git"):
|
||||||
detected_origin += ".git"
|
detected_origin += ".git"
|
||||||
if (
|
if (
|
||||||
self.cmd_helper.is_debug_enabled() or
|
self.server.is_debug_enabled() or
|
||||||
not detected_origin.startswith("http") or
|
not detected_origin.startswith("http") or
|
||||||
detected_origin == self.origin_url.lower()
|
detected_origin == self.origin_url.lower()
|
||||||
):
|
):
|
||||||
|
@ -703,7 +703,7 @@ class GitRepo:
|
||||||
f"Git Repo {self.alias}: Cannot perform pull on a "
|
f"Git Repo {self.alias}: Cannot perform pull on a "
|
||||||
"detached HEAD")
|
"detached HEAD")
|
||||||
cmd = "pull --progress"
|
cmd = "pull --progress"
|
||||||
if self.cmd_helper.is_debug_enabled():
|
if self.server.is_debug_enabled():
|
||||||
cmd = f"{cmd} --rebase"
|
cmd = f"{cmd} --rebase"
|
||||||
if self.is_beta:
|
if self.is_beta:
|
||||||
cmd = f"{cmd} {self.git_remote} {self.upstream_commit}"
|
cmd = f"{cmd} {self.git_remote} {self.upstream_commit}"
|
||||||
|
|
|
@ -506,9 +506,6 @@ class CommandHelper:
|
||||||
def get_umdb(self) -> NamespaceWrapper:
|
def get_umdb(self) -> NamespaceWrapper:
|
||||||
return self.umdb
|
return self.umdb
|
||||||
|
|
||||||
def is_debug_enabled(self) -> bool:
|
|
||||||
return self.debug_enabled
|
|
||||||
|
|
||||||
def set_update_info(self, app: str, uid: int) -> None:
|
def set_update_info(self, app: str, uid: int) -> None:
|
||||||
self.cur_update_app = app
|
self.cur_update_app = app
|
||||||
self.cur_update_id = uid
|
self.cur_update_id = uid
|
||||||
|
|
|
@ -64,6 +64,11 @@ class Server:
|
||||||
self.event_loop = event_loop
|
self.event_loop = event_loop
|
||||||
self.file_logger = file_logger
|
self.file_logger = file_logger
|
||||||
self.app_args = args
|
self.app_args = args
|
||||||
|
self.events: Dict[str, List[FlexCallback]] = {}
|
||||||
|
self.components: Dict[str, Any] = {}
|
||||||
|
self.failed_components: List[str] = []
|
||||||
|
self.warnings: Dict[str, str] = {}
|
||||||
|
|
||||||
self.config = config = self._parse_config()
|
self.config = config = self._parse_config()
|
||||||
self.host: str = config.get('host', "0.0.0.0")
|
self.host: str = config.get('host', "0.0.0.0")
|
||||||
self.port: int = config.getint('port', 7125)
|
self.port: int = config.getint('port', 7125)
|
||||||
|
@ -72,17 +77,12 @@ class Server:
|
||||||
self.server_running: bool = False
|
self.server_running: bool = False
|
||||||
|
|
||||||
# Configure Debug Logging
|
# Configure Debug Logging
|
||||||
self.debug = config.getboolean('enable_debug_logging', False)
|
config.getboolean('enable_debug_logging', False, deprecate=True)
|
||||||
asyncio_debug = config.getboolean('enable_asyncio_debug', False)
|
self.debug = args["debug"]
|
||||||
log_level = logging.DEBUG if self.debug else logging.INFO
|
log_level = logging.DEBUG if args["verbose"] else logging.INFO
|
||||||
logging.getLogger().setLevel(log_level)
|
logging.getLogger().setLevel(log_level)
|
||||||
self.event_loop.set_debug(asyncio_debug)
|
self.event_loop.set_debug(args["asyncio_debug"])
|
||||||
|
|
||||||
# Event initialization
|
|
||||||
self.events: Dict[str, List[FlexCallback]] = {}
|
|
||||||
self.components: Dict[str, Any] = {}
|
|
||||||
self.failed_components: List[str] = []
|
|
||||||
self.warnings: Dict[str, str] = {}
|
|
||||||
self.klippy_connection = KlippyConnection(config)
|
self.klippy_connection = KlippyConnection(config)
|
||||||
|
|
||||||
# Tornado Application/Server
|
# Tornado Application/Server
|
||||||
|
@ -125,6 +125,9 @@ class Server:
|
||||||
def is_debug_enabled(self) -> bool:
|
def is_debug_enabled(self) -> bool:
|
||||||
return self.debug
|
return self.debug
|
||||||
|
|
||||||
|
def is_verbose_enabled(self) -> bool:
|
||||||
|
return self.app_args["verbose"]
|
||||||
|
|
||||||
def _parse_config(self) -> confighelper.ConfigHelper:
|
def _parse_config(self) -> confighelper.ConfigHelper:
|
||||||
config = confighelper.get_configuration(self, self.app_args)
|
config = confighelper.get_configuration(self, self.app_args)
|
||||||
# log config file
|
# log config file
|
||||||
|
@ -455,7 +458,10 @@ def main(cmd_line_args: argparse.Namespace) -> None:
|
||||||
"data_path": str(data_path),
|
"data_path": str(data_path),
|
||||||
"is_default_data_path": cmd_line_args.datapath is None,
|
"is_default_data_path": cmd_line_args.datapath is None,
|
||||||
"config_file": cfg_file,
|
"config_file": cfg_file,
|
||||||
"startup_warnings": startup_warnings
|
"startup_warnings": startup_warnings,
|
||||||
|
"verbose": cmd_line_args.verbose,
|
||||||
|
"debug": cmd_line_args.debug,
|
||||||
|
"asyncio_debug": cmd_line_args.asyncio_debug
|
||||||
}
|
}
|
||||||
|
|
||||||
# Setup Logging
|
# Setup Logging
|
||||||
|
@ -548,4 +554,16 @@ if __name__ == '__main__':
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"-n", "--nologfile", action='store_true',
|
"-n", "--nologfile", action='store_true',
|
||||||
help="disable logging to a file")
|
help="disable logging to a file")
|
||||||
|
parser.add_argument(
|
||||||
|
"-v", "--verbose", action="store_true",
|
||||||
|
help="Enable verbose logging"
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"-g", "--debug", action="store_true",
|
||||||
|
help="Enable Moonraker debug features"
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"-o", "--asyncio-debug", action="store_true",
|
||||||
|
help="Enable asyncio debug flag"
|
||||||
|
)
|
||||||
main(parser.parse_args())
|
main(parser.parse_args())
|
||||||
|
|
Loading…
Reference in New Issue