Accumulate logs during setup
[mudpy.git] / lib / mudpy / misc.py
index 2bec9bf..8e747dd 100644 (file)
@@ -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))