def set_config(config = None):
"""
Set the configuration of SciTokens library
:param config: config may be: A full path to a ini configuration file,
A ConfigParser instance, or None, which will use all defaults.
"""
global configuration # pylint: disable=C0103
if isinstance(config, six.string_types):
configuration = configparser.SafeConfigParser(CONFIG_DEFAULTS)
configuration.read([config])
elif isinstance(config, configparser.RawConfigParser):
configuration = config
elif config is None:
print("Using built-in defaults")
configuration = configparser.SafeConfigParser(CONFIG_DEFAULTS)
configuration.add_section("scitokens")
else:
pass
logger = logging.getLogger("scitokens")
if configuration.has_option("scitokens", "log_file"):
log_file = configuration.get("scitokens", "log_file")
if log_file is not None:
# Create loggers with 100MB files, rotated 5 times
logger.addHandler(logging.handlers.RotatingFileHandler(log_file, maxBytes=100 * (1024*1000), backupCount=5))
else:
logger.addHandler(logging.StreamHandler())
# Set the logging
log_level = configuration.get("scitokens", "log_level")
if log_level == "DEBUG":
logger.setLevel(logging.DEBUG)
elif log_level == "INFO":
logger.setLevel(logging.INFO)
elif log_level == "WARNING":
logger.setLevel(logging.WARNING)
elif log_level == "ERROR":
logger.setLevel(logging.ERROR)
elif log_level == "CRITICAL":
logger.setLevel(logging.CRITICAL)
else:
logger.setLevel(logging.WARNING)
评论列表
文章目录