Source code for vaex.logging

"""Sets up logging for vaex.

See `configuration of logging <conf.html#logging>`_ how to configure logging.

"""
import os
import vaex.settings
import logging

logger = logging.getLogger('vaex')
log_handler : logging.Handler = None


[docs]def set_log_level(loggers=["vaex"], level=logging.DEBUG): """set log level to debug""" for logger in loggers: logging.getLogger(logger).setLevel(level)
[docs]def set_log_level_debug(loggers=["vaex"]): """set log level to debug""" set_log_level(loggers, logging.DEBUG)
[docs]def set_log_level_info(loggers=["vaex"]): """set log level to info""" set_log_level(loggers, logging.INFO)
[docs]def set_log_level_warning(loggers=["vaex"]): """set log level to warning""" set_log_level(loggers, logging.WARNING)
[docs]def set_log_level_error(loggers=["vaex"]): """set log level to exception/error""" set_log_level(loggers, logging.ERROR)
[docs]def remove_handler(): """Disabled logging, remove default hander and add null handler""" logging.getLogger('vaex').removeHandler(log_handler) logging.getLogger('vaex').addHandler(logging.NullHandler())
[docs]def reset(): '''Reset configuration of logging (i.e. remove the default handler)''' logging.getLogger('vaex').removeHandler(log_handler)
def _set_log_level(conf, level): if conf: if conf.startswith('vaex'): set_log_level(conf.split(","), level=level) else: set_log_level(level=level)
[docs]def setup(): """Setup logging based on the configuration in ``vaex.settings`` This function is automatically called when importing vaex. If settings are changed, call :func:`reset` and this function again to re-apply the settings. """ global log_handler if vaex.settings.main.logging.setup: logger.setLevel(logging.DEBUG) # create console handler and accept all loglevels if vaex.settings.main.logging.rich: from rich.logging import RichHandler log_handler = RichHandler() else: log_handler = logging.StreamHandler() # create formatter formatter = logging.Formatter('%(levelname)s:%(threadName)s:%(name)s:%(message)s') # add formatter to console handler log_handler.setFormatter(formatter) log_handler.setLevel(logging.DEBUG) # add console handler to logger logger.addHandler(log_handler) logging.getLogger("vaex").setLevel(logging.ERROR) # default to higest level _set_log_level(vaex.settings.main.logging.error, logging.ERROR) _set_log_level(vaex.settings.main.logging.warning, logging.WARNING) _set_log_level(vaex.settings.main.logging.info, logging.INFO) _set_log_level(vaex.settings.main.logging.debug, logging.DEBUG) # VAEX_DEBUG behaves similar to VAEX_LOGGING_DEBUG, but has more effect DEBUG_MODE = os.environ.get('VAEX_DEBUG', '') if DEBUG_MODE: _set_log_level(DEBUG_MODE, logging.DEBUG)
setup()