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)