From 81dce6161aa4ea253cd6538592ca8af7911a645b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gina=20H=C3=A4u=C3=9Fge?= Date: Tue, 27 Oct 2015 14:25:41 +0100 Subject: [PATCH] Moved startup log entry "up" a bit Now that the plugin manager gets initialized before the server gets even constructed, we need to log that entry right after we've set up logging in order to post any plugin manager related log entries after. --- src/octoprint/__init__.py | 34 +++++++++++++++++++++++--------- src/octoprint/server/__init__.py | 14 ++++--------- 2 files changed, 29 insertions(+), 19 deletions(-) diff --git a/src/octoprint/__init__.py b/src/octoprint/__init__.py index 50b4ab36..b36cc4ce 100644 --- a/src/octoprint/__init__.py +++ b/src/octoprint/__init__.py @@ -6,25 +6,34 @@ import sys import click import logging +#~~ version + +from ._version import get_versions +versions = get_versions() + +__version__ = versions['version'] +__branch__ = versions['branch'] if 'branch' in versions else None +__display_version__ = "{} ({} branch)".format(__version__, __branch__) if __branch__ else __version__ + +del versions +del get_versions + + from octoprint.daemon import Daemon from octoprint.server import Server logging.basicConfig() -#~~ version - -from ._version import get_versions -__version__ = get_versions()['version'] -del get_versions - - #~~ init methods to bring up platform def init_platform(basedir, configfile, use_logging_file=True, logging_file=None, logging_config=None, debug=False, uncaught_logger=None, - uncaught_handler=None): + uncaught_handler=None, after_settings=None, after_logging=None): settings = init_settings(basedir, configfile) + if callable(after_settings): + after_settings(settings) + logger = init_logging(settings, use_logging_file=use_logging_file, logging_file=logging_file, @@ -32,6 +41,9 @@ def init_platform(basedir, configfile, use_logging_file=True, logging_file=None, debug=debug, uncaught_logger=uncaught_logger, uncaught_handler=uncaught_handler) + if callable(after_logging): + after_logging(logger) + plugin_manager = init_pluginsystem(settings) return settings, logger, plugin_manager @@ -198,11 +210,15 @@ class OctoPrintDaemon(Daemon): def run_server(basedir, configfile, host, port, debug, allow_root, logging_config): + def log_startup(_): + logging.getLogger("octoprint.server").info("Starting OctoPrint {}".format(__display_version__)) + settings, _, plugin_manager = init_platform(basedir, configfile, logging_file=logging_config, debug=debug, - uncaught_logger=__name__) + uncaught_logger=__name__, + after_logging=log_startup) octoprint = Server(settings=settings, plugin_manager=plugin_manager, host=host, port=port, debug=debug, allow_root=allow_root) octoprint.run() diff --git a/src/octoprint/server/__init__.py b/src/octoprint/server/__init__.py index 4f33f5a6..c02628b2 100644 --- a/src/octoprint/server/__init__.py +++ b/src/octoprint/server/__init__.py @@ -49,6 +49,7 @@ admin_permission = Permission(RoleNeed("admin")) user_permission = Permission(RoleNeed("user")) # only import the octoprint stuff down here, as it might depend on things defined above to be initialized already +from octoprint import __version__, __branch__, __display_version__ from octoprint.printer import get_connection_options from octoprint.printer.profile import PrinterProfileManager from octoprint.printer.standard import Printer @@ -67,11 +68,9 @@ from . import util UI_API_KEY = ''.join('%02X' % ord(z) for z in uuid.uuid4().bytes) -versions = octoprint._version.get_versions() -VERSION = versions['version'] -BRANCH = versions['branch'] if 'branch' in versions else None -DISPLAY_VERSION = "%s (%s branch)" % (VERSION, BRANCH) if BRANCH else VERSION -del versions +VERSION = __version__ +BRANCH = __branch__ +DISPLAY_VERSION = __display_version__ LOCALES = [] LANGUAGES = set() @@ -157,8 +156,6 @@ class Server(): self._logger = logging.getLogger(__name__) pluginManager = self._plugin_manager - self._logger.info("Starting OctoPrint %s" % DISPLAY_VERSION) - # monkey patch a bunch of stuff util.tornado.fix_ioloop_scheduling() util.flask.enable_additional_translations(additional_folders=[self._settings.getBaseFolder("translations")]) @@ -1000,6 +997,3 @@ class LifecycleManager(object): if callback in self._plugin_lifecycle_callbacks[event]: self._plugin_lifecycle_callbacks[event].remove(callback) -if __name__ == "__main__": - server = Server() - server.run()