diff --git a/hive/conf.py b/hive/conf.py index 37cbf99b418cc13bcd4a930392c56004b95b86cf..2119b4b5251c71075a298f919420c801724893b9 100644 --- a/hive/conf.py +++ b/hive/conf.py @@ -5,7 +5,7 @@ import configargparse from hive.steem.client import SteemClient from hive.db.adapter import Db -from hive.utils.normalize import strtobool +from hive.utils.normalize import strtobool, int_log_level class Conf(): """ Manages sync/server configuration via args, ENVs, and hive.conf. """ @@ -94,8 +94,4 @@ class Conf(): def log_level(self): """Get `logger`s internal int level from config string.""" - str_log_level = self.get('log_level') - log_level = getattr(logging, str_log_level.upper(), None) - if not isinstance(log_level, int): - raise ValueError('Invalid log level: %s' % str_log_level) - return log_level + return int_log_level(self.get('log_level')) diff --git a/hive/server/serve.py b/hive/server/serve.py index 0c8646afa3565aa5abc0cbcca40de67ffaf6049b..547edf4cf7489e54d9bcc0f8af7d93f9174098f0 100644 --- a/hive/server/serve.py +++ b/hive/server/serve.py @@ -65,6 +65,7 @@ def run_server(conf): log_level = conf.log_level() config.debug = (log_level == logging.DEBUG) + #config.debug = logging.getLogger().isEnabledFor(logging.DEBUG) logging.getLogger('jsonrpcserver.dispatcher.response').setLevel(log_level) log = logging.getLogger(__name__) diff --git a/hive/utils/normalize.py b/hive/utils/normalize.py index b1bd7b3bd6965a4579d31edbc3794cc33bad3aaf..247c7a178b203e63a555dbb735468c58e508f71f 100644 --- a/hive/utils/normalize.py +++ b/hive/utils/normalize.py @@ -1,5 +1,6 @@ """Methods to parse steemd values and clean strings.""" +import logging import math import decimal from datetime import datetime @@ -155,3 +156,12 @@ def strtobool(val): return False else: raise ValueError("not booleany: %r" % (val,)) + +def int_log_level(str_log_level): + """Get `logger`s internal int level from config string.""" + if not str_log_level: + raise ValueError('Empty log level passed') + log_level = getattr(logging, str_log_level.upper(), None) + if not isinstance(log_level, int): + raise ValueError('Invalid log level: %s' % str_log_level) + return log_level diff --git a/tests/utils/test_utils_normalize.py b/tests/utils/test_utils_normalize.py index 0d139a81d44a06fd15bc87c122c57eb4c05a3212..9609e5e5234939bb454d0a622e991d686120290a 100644 --- a/tests/utils/test_utils_normalize.py +++ b/tests/utils/test_utils_normalize.py @@ -21,6 +21,7 @@ from hive.utils.normalize import ( safe_img_url, secs_to_str, strtobool, + int_log_level, ) def test_secs_to_str(): @@ -105,3 +106,15 @@ def test_strtobool(): with pytest.raises(ValueError): strtobool('foo') + +def test_int_log_level(): + assert int_log_level('debug') == 10 + assert int_log_level('DEBUG') == 10 + assert int_log_level('info') == 20 + assert int_log_level('warning') == 30 + with pytest.raises(ValueError): + int_log_level('foo') + with pytest.raises(ValueError): + int_log_level(None) + with pytest.raises(ValueError): + int_log_level('')