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('')