Source code for plio.utils.log

import os
import json
import logging.config

from ..examples import get_path


[docs]def setup_logging(path=get_path('logging.json'), level='INFO', env_key='LOG_CFG'): """ Read a log configuration file, written in JSON Parameters ---------- path : string The path to the logging configuration file level : object The logger level at which to report env_key : str A potential environment variable where the user defaults logs """ value = os.getenv(env_key, None) if value: path = value level = getattr(logging, level.upper()) if os.path.exists(path): logtype = os.path.splitext(os.path.basename(path))[1] with open(path, 'rt') as f: if logtype == '.json': config = json.load(f) elif logtype == '.yaml': import yaml config = yaml.safe_load(f.read()) logging.config.dictConfig(config) else: logging.basicConfig(level=level) logger = logging.getLogger() logger.setLevel(level)