"""Taurex logging module."""importioimportloggingimporttypingastlogging.getLogger("taurex").addHandler(logging.NullHandler())"""Root logger for taurex"""root_logger=logging.getLogger("taurex")
[docs]defsetup_log(name:str)->logging.Logger:"""Build a logger class for the given name. Parameters ---------- name : str Name of logger Returns ------- logging.Logger Logger class """returnlogging.getLogger(name)
[docs]classTauRexHandler(logging.StreamHandler):"""Logging Handler for Taurex 3. Prevents other MPI threads from writing to log unless they are in trouble (>=ERROR) Parameters ---------- stream : stream-object , optional Stream to write to otherwise defaults to ``stderr`` """def__init__(self,stream:io.IOBase=None)->None:fromtaurex.mpiimportget_ranksuper().__init__(stream=stream)self._rank=get_rank()
[docs]classLoggable:"""Base class for loggable objects."""def__init__(self,name:t.Optional[str]=None)->None:"""Initialise logger."""name=nameorself.__class__.__name__self._logger=setup_log(f"taurex.{name}")