refactor: logging

This commit is contained in:
Félix Voituret
2019-11-06 20:30:47 +01:00
parent eaa6005e08
commit 01319e1a63
3 changed files with 35 additions and 20 deletions

View File

@@ -12,7 +12,7 @@ import warnings
from .commands import create_argument_parser
from .utils.configuration import load_configuration
from .utils.logging import enable_logging, enable_verbose_logging
from .utils.logging import enable_logging, enable_tensorflow_logging
__email__ = 'research@deezer.com'
__author__ = 'Deezer Research'
@@ -28,10 +28,9 @@ def main(argv):
"""
parser = create_argument_parser()
arguments = parser.parse_args(argv[1:])
enable_logging()
if arguments.verbose:
enable_verbose_logging()
else:
enable_logging()
enable_tensorflow_logging()
if arguments.command == 'separate':
from .commands.separate import entrypoint
elif arguments.command == 'train':

View File

@@ -65,9 +65,9 @@ class GithubModelProvider(ModelProvider):
raise IOError(f'Resource {url} not found')
with TemporaryFile() as stream:
copyfileobj(response.raw, stream)
get_logger().debug('Extracting downloaded archive')
get_logger().info('Extracting downloaded %s archive', name)
stream.seek(0)
tar = tarfile.open(fileobj=stream)
tar.extractall(path=path)
tar.close()
get_logger().debug('Model file extracted')
get_logger().info('%s model file(s) extracted', name)

View File

@@ -3,12 +3,16 @@
""" Centralized logging facilities for Spleeter. """
import logging
from os import environ
__email__ = 'research@deezer.com'
__author__ = 'Deezer Research'
__license__ = 'MIT License'
_FORMAT = '%(levelname)s:%(name)s:%(message)s'
class _LoggerHolder(object):
""" Logger singleton instance holder. """
@@ -16,30 +20,42 @@ class _LoggerHolder(object):
INSTANCE = None
def get_tensorflow_logger():
"""
"""
# pylint: disable=import-error
from tensorflow.compat.v1 import logging
# pylint: enable=import-error
return logging
def get_logger():
""" Returns library scoped logger.
:returns: Library logger.
"""
if _LoggerHolder.INSTANCE is None:
# pylint: disable=import-error
from tensorflow.compat.v1 import logging
# pylint: enable=import-error
_LoggerHolder.INSTANCE = logging
_LoggerHolder.INSTANCE.set_verbosity(_LoggerHolder.INSTANCE.ERROR)
environ['TF_CPP_MIN_LOG_LEVEL'] = '3'
formatter = logging.Formatter(_FORMAT)
handler = logging.StreamHandler()
handler.setFormatter(formatter)
logger = logging.getLogger('spleeter')
logger.addHandler(handler)
logger.setLevel(logging.INFO)
_LoggerHolder.INSTANCE = logger
return _LoggerHolder.INSTANCE
def enable_logging():
""" Enable INFO level logging. """
def enable_tensorflow_logging():
""" Enable tensorflow logging. """
environ['TF_CPP_MIN_LOG_LEVEL'] = '1'
tf_logger = get_tensorflow_logger()
tf_logger.set_verbosity(tf_logger.INFO)
logger = get_logger()
logger.set_verbosity(logger.INFO)
logger.setLevel(logging.DEBUG)
def enable_verbose_logging():
""" Enable DEBUG level logging. """
environ['TF_CPP_MIN_LOG_LEVEL'] = '0'
logger = get_logger()
logger.set_verbosity(logger.DEBUG)
def enable_logging():
""" Configure default logging. """
environ['TF_CPP_MIN_LOG_LEVEL'] = '3'
tf_logger = get_tensorflow_logger()
tf_logger.set_verbosity(tf_logger.ERROR)