nvm.aux_log package

Submodules

nvm.aux_log.aux_log module

Logger that handles two outputs (stdout and file).

class nvm.aux_log.aux_log.Log0(dir0='logs', fn0=None, write=False, stream_lvl='INFO', file_lvl='DEBUG')[source]

Bases: object

Log0: logger that handles two outputs (stdout and file).

Initialize Log0 class.

Examples

Without writing to log file.

>>> import nvm
>>> logZ = nvm.Log0(
>>>     write=False,
>>>     stream_lvl="INFO",
>>>     file_lvl="DEBUG",
>>> )
>>> log0 = logZ.logger
>>> # Check log file location
>>> log0.info(f"{logZ.of0 = }")

Or simply

>>> import nvm
>>> import pathlib
>>> logZ = nvm.Log0()
>>> log0 = logZ.logger
>>> log0.info(f"{pathlib.Path.cwd() = }")

With writing to log file.

>>> import nvm
>>> logZ = nvm.Log0(
>>>     write=True,
>>>     stream_lvl="INFO",
>>>     file_lvl="DEBUG",
>>> )
>>> log0 = logZ.logger
>>> # Check log file location
>>> log0.info(f"{logZ.of0 = }")

Change logging levels.

>>> # Check levels
>>> log0.info(f"handler0: {logZ.logging.getLevelName(logZ.handler0)}")
>>> log0.info(f"handler1: {logZ.logging.getLevelName(logZ.handler1)}")
>>> log0.info(f"logger: {logZ.logging.getLevelName(log0)}")
>>> # Set levels
>>> logZ.handler0.setLevel("DEBUG")
>>> # Check levels again
>>> log0.info(f"handler0: {logZ.logging.getLevelName(logZ.handler0)}")
>>> log0.info(f"handler1: {logZ.logging.getLevelName(logZ.handler1)}")
>>> log0.info(f"logger: {logZ.logging.getLevelName(log0)}")
>>> # Set overall ogging level
>>> log0.setLevel("CRITICAL")
>>> log0.info(f"handler0: {logZ.logging.getLevelName(logZ.handler0)}")
>>> log0.info(f"handler1: {logZ.logging.getLevelName(logZ.handler1)}")
>>> log0.info(f"logger: {logZ.logging.getLevelName(log0)}")
>>> # no output expected from log0.info after setting "CRITICAL" logging level

Module contents