diff --git a/subiquity/core.py b/subiquity/core.py index 9e99f2fb..7ffbd382 100644 --- a/subiquity/core.py +++ b/subiquity/core.py @@ -250,17 +250,19 @@ class Subiquity(Application): traceback.print_exc() signal.pause() - def report_start_event(self, name, description, level="INFO"): + def report_start_event(self, context, description): # report_start_event gets called when the Reporting controller # is being loaded... Reporting = getattr(self.controllers, "Reporting", None) if Reporting is not None: - Reporting.report_start_event(name, description, level) + Reporting.report_start_event( + context.full_name(), description, context.level) - def report_finish_event(self, name, description, status, level="INFO"): + def report_finish_event(self, context, description, status): Reporting = getattr(self.controllers, "Reporting", None) if Reporting is not None: - Reporting.report_finish_event(name, description, status, level) + Reporting.report_finish_event( + context.full_name(), description, status, context.level) def confirm_install(self): self.install_confirmed = True diff --git a/subiquitycore/context.py b/subiquitycore/context.py index 5ca22377..50dede3c 100644 --- a/subiquitycore/context.py +++ b/subiquitycore/context.py @@ -56,15 +56,15 @@ class Context: self.childlevel = childlevel @classmethod - def new(self, app): - return Context(app, app.project, "", None, "INFO") + def new(cls, app): + return cls(app, app.project, "", None, "INFO") def child(self, name, description="", level=None, childlevel=None): if level is None: level = self.childlevel - return Context(self.app, name, description, self, level, childlevel) + return type(self)(self.app, name, description, self, level, childlevel) - def _name(self): + def full_name(self): c = self names = [] while c is not None: @@ -75,13 +75,12 @@ class Context: def enter(self, description=None): if description is None: description = self.description - self.app.report_start_event(self._name(), description, self.level) + self.app.report_start_event(self, description) def exit(self, description=None, result=Status.SUCCESS): if description is None: description = self.description - self.app.report_finish_event( - self._name(), description, result, self.level) + self.app.report_finish_event(self, description, result) def __enter__(self): self.enter() diff --git a/subiquitycore/core.py b/subiquitycore/core.py index 033c499c..88f0b21a 100644 --- a/subiquitycore/core.py +++ b/subiquitycore/core.py @@ -472,15 +472,14 @@ class Application: self.controllers.index = controller_index - 1 self.next_screen() - def report_start_event(self, name, description, level): - # See context.py for what calls these. - log = logging.getLogger(name) - level = getattr(logging, level) + def report_start_event(self, context, description): + log = logging.getLogger(context.full_name()) + level = getattr(logging, context.level) log.log(level, "start: %s", description) - def report_finish_event(self, name, description, status, level): - log = logging.getLogger(name) - level = getattr(logging, level) + def report_finish_event(self, context, description, status): + log = logging.getLogger(context.full_name()) + level = getattr(logging, context.level) log.log(level, "finish: %s %s", description, status.name) # EventLoop -------------------------------------------------------------------