From: Jeremy Stanley Date: Mon, 13 Oct 2014 03:12:08 +0000 (+0000) Subject: Accumulate logs during setup X-Git-Tag: 0.0.1~226 X-Git-Url: https://mudpy.org/gitweb?a=commitdiff_plain;h=bc1722f6f7aa9ccc4aeb28bc091b0bffe7f66433;p=mudpy.git Accumulate logs during setup Prior to existence of the global universe, the destination files for logging may not be known. Accumulate log entries during Universe.load() and then flush them once it's safe to do so. --- diff --git a/lib/mudpy/misc.py b/lib/mudpy/misc.py index 2bec9bf..8e747dd 100644 --- a/lib/mudpy/misc.py +++ b/lib/mudpy/misc.py @@ -384,11 +384,15 @@ class Universe: filename = os.path.join(self.startdir, filename) self.filename = filename if load: - self.load() + # make sure to preserve any accumulated log entries during load + self.setup_loglines += self.load() def load(self): """Load universe data from persistent storage.""" + # it's possible for this to enter before logging configuration is read + pending_loglines = [] + # the files dict must exist and filename needs to be read-only if not hasattr( self, "files" @@ -432,6 +436,7 @@ class Universe: for element in self.contents.values(): element.update_location() element.clean_contents() + return pending_loglines def new(self): """Create a new, empty Universe (the Big Bang).""" @@ -2456,6 +2461,11 @@ def setup(): global universe universe = Universe(conffile, True) + # report any loglines which accumulated during setup + for logline in universe.setup_loglines: + log(*logline) + universe.setup_loglines = [] + # log an initial message log("Started mudpy with command line: " + " ".join(sys.argv))