aboutsummaryrefslogtreecommitdiffstats
path: root/fg21sim/utils/logging.py
diff options
context:
space:
mode:
Diffstat (limited to 'fg21sim/utils/logging.py')
-rw-r--r--fg21sim/utils/logging.py30
1 files changed, 16 insertions, 14 deletions
diff --git a/fg21sim/utils/logging.py b/fg21sim/utils/logging.py
index bc827fc..d2bfa1f 100644
--- a/fg21sim/utils/logging.py
+++ b/fg21sim/utils/logging.py
@@ -12,6 +12,7 @@ from logging import FileHandler, StreamHandler
def setup_logging(dict_config=None, level=None, stream=None, logfile=None):
"""Setup the logging.
+
This will override the logging configurations in the config file
if specified (e.g., by command line arguments).
@@ -20,30 +21,30 @@ def setup_logging(dict_config=None, level=None, stream=None, logfile=None):
dict_config : dict
Dict of logging configurations specified in the config file.
If this parameter specified, the logging will be reconfigured.
- level : string;
+ level : str;
Override the existing log level
stream : string; "stderr", "stdout", or ""
This controls where the log messages go to.
If not None, then override the old ``StreamHandler`` settings;
if ``stream=""``, then disable the ``StreamHandler``.
- logfile : string
+ logfile : str
Specify the file where the log messages go to.
If ``logfile=""``, then disable the ``FileHandler``.
NOTE
----
If the logging already has ``StreamHandler`` or ``FileHandler``
- configured, then the old handler will be *replaced* (i.e., remove
+ configured, then the old handler will be **replaced** (i.e., remove
the old one, then add the new one).
"""
- # default file open mode for logging to file
+ # Default file open mode for logging to file
filemode = "a"
root_logger = logging.getLogger()
#
if dict_config:
- # XXX:
- # "basicConfig()" does NOT accept paramter "filemode" if the
- # corresponding parameter "filename" NOT specified.
+ # XXX/NOTE:
+ # ``basicConfig()`` does NOT accept parameter ``filemode`` if the
+ # corresponding parameter ``filename`` NOT specified.
filemode = dict_config.pop("filemode", filemode)
# Clear existing handlers, otherwise further "basicConfig" calls
# will be ignored
@@ -55,15 +56,16 @@ def setup_logging(dict_config=None, level=None, stream=None, logfile=None):
# the handlers to the "root" logger.
logging.basicConfig(**dict_config)
#
- # Configured logging has at least one handler with configured formatter.
- # Keep the existing formatter to keep the configured format styles.
- formatter = root_logger.handlers[0].formatter
if level is not None:
level_int = getattr(logging, level.upper(), None)
if not isinstance(level_int, int):
raise ValueError("invalid log level: %s" % level)
root_logger.setLevel(level_int)
#
+ # Configured logging has at least one handler with configured formatter.
+ # Store the existing formatter to preserve the configured format styles.
+ formatter = root_logger.handlers[0].formatter
+ #
if stream is None:
pass
elif stream in ["", "stderr", "stdout"]:
@@ -73,10 +75,10 @@ def setup_logging(dict_config=None, level=None, stream=None, logfile=None):
handler.close()
root_logger.removeHandler(handler)
if stream == "":
- # disable ``StreamHandler``
+ # ``StreamHandler`` already disabled
pass
else:
- # add new ``StreamHandler``
+ # Add new ``StreamHandler``
handler = StreamHandler(getattr(sys, stream))
handler.setFormatter(formatter)
root_logger.addHandler(handler)
@@ -91,10 +93,10 @@ def setup_logging(dict_config=None, level=None, stream=None, logfile=None):
handler.close()
root_logger.removeHandler(handler)
if logfile == "":
- # disable ``FileHandler``
+ # ``FileHandler`` already disabled
pass
else:
- # add new ``FileHandler``
+ # Add new ``FileHandler``
handler = FileHandler(logfile, mode=filemode)
handler.setFormatter(formatter)
root_logger.addHandler(handler)