From bc1722f6f7aa9ccc4aeb28bc091b0bffe7f66433 Mon Sep 17 00:00:00 2001 From: Jeremy Stanley Date: Mon, 13 Oct 2014 03:12:08 +0000 Subject: [PATCH] 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. --- lib/mudpy/misc.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) 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)) -- 2.11.0