diff --git a/mpsd-software-environment.py b/mpsd-software-environment.py
index 9f612679f0209351e4b73ce6a877cbe0799b83a7..5b6538b65fda4d335473f6d6e9245cfccf7c9eb9 100755
--- a/mpsd-software-environment.py
+++ b/mpsd-software-environment.py
@@ -12,6 +12,15 @@ import time
 from pathlib import Path
 from typing import List, Tuple
 
+# If 'rich' is available ("pip install rich" or "apt-get install python3-rich"),
+# then use coloured output, otherwise proceed as before
+try:
+    import rich.logging
+except ModuleNotFoundError:
+    rich_available = False
+else:
+    rich_available = True
+
 
 about_tool = """
 Build toolchains using Spack.\n
@@ -61,38 +70,24 @@ def set_up_logging(loglevel="warning", filename=None):
     if filename:
         handlers.append(logging.FileHandler(filename))
 
-    # If 'rich' is available ("pip install rich" or "apt-get install python3-rich"),
-    # then use coloured output, otherwise proceed as before
-    try:
-        import rich.logging
-    except ModuleNotFoundError:
-        rich_available = False
-    else:
-        rich_available = True
-
     if rich_available:
-        handlers.append(rich.logging.RichHandler())
         # set up logging as recommended for rich, see
         # https://rich.readthedocs.io/en/stable/logging.html
-        logging.basicConfig(
-            level=log_level_numeric,
-            format="%(message)s",
-            datefmt="[%X]",
-            handlers=handlers,
-            force=True,
-        )
+        handlers.append(rich.logging.RichHandler())
+        logging_format = "%(message)s"
     else:  # rich not available, define our own output
-        handlers.append(logging.StreamHandler())
         # include line numbers in output if level is DEBUG
         linenumbers = " %(lineno)4d" if log_level_numeric == logging.DEBUG else ""
-
-        logging.basicConfig(
-            format="%(asctime)s %(levelname)7s" + linenumbers + "  |  %(message)s",
-            datefmt="[%X]",
-            level=log_level_numeric,
-            handlers=handlers,
-            force=True,
-        )
+        handlers.append(logging.StreamHandler())
+        logging_format = "%(asctime)s %(levelname)7s" + linenumbers + "  |  %(message)s"
+
+    logging.basicConfig(
+        level=log_level_numeric,
+        format=logging_format,
+        datefmt="[%X]",
+        handlers=handlers,
+        force=True,
+    )
     logging.debug(
         f"Logging has been setup, loglevel={loglevel.upper()}"
         + f"{filename=} {rich_available=}"