From 78573e9acacd8a886d473a4d82761f2639c48f4a Mon Sep 17 00:00:00 2001 From: Dmitry Petrov Date: Thu, 6 Apr 2017 21:13:25 -0700 Subject: [PATCH] Set logging level in config. Close #10 --- dvc/command/init.py | 5 ++++- dvc/config.py | 4 ++++ dvc/git_wrapper.py | 4 ++-- dvc/logger.py | 53 ++++++++++++++++++++++++++++++++++----------- 4 files changed, 50 insertions(+), 16 deletions(-) diff --git a/dvc/command/init.py b/dvc/command/init.py index e646a32cd..c2a458198 100644 --- a/dvc/command/init.py +++ b/dvc/command/init.py @@ -20,6 +20,9 @@ CacheDir = {} StateDir = {} Cloud = AWS +# Log levels: Debug, Info, Warning and Error +LogLevel = Info + [AWS] AccessKeyId = SecretAccessKey = @@ -77,7 +80,7 @@ SecurityGroup = dvc-group''' data_dir_path.mkdir() cache_dir_path.mkdir() state_dir_path.mkdir() - Logger.info('Directories {}, {} and {} were created'.format( + Logger.info('Directories {}/, {}/ and {}/ were created'.format( data_dir_path.name, cache_dir_path.name, state_dir_path.name)) diff --git a/dvc/config.py b/dvc/config.py index 29649afab..11a10409f 100644 --- a/dvc/config.py +++ b/dvc/config.py @@ -2,6 +2,7 @@ import os import configparser from dvc.exceptions import DvcException +from dvc.logger import Logger class ConfigError(DvcException): @@ -44,6 +45,9 @@ class Config(ConfigI): raise ConfigError('Config file "{}" does not exist'.format(conf_file)) self._config.read(conf_file) + level = self._config['Global']['LogLevel'] + Logger.set_level(level) + super(Config, self).__init__(self._config['Global']['DataDir'], self._config['Global']['CacheDir'], self._config['Global']['StateDir']) diff --git a/dvc/git_wrapper.py b/dvc/git_wrapper.py index 5293dae58..02e9eec7e 100644 --- a/dvc/git_wrapper.py +++ b/dvc/git_wrapper.py @@ -126,10 +126,10 @@ class GitWrapper(GitWrapperI): def commit_all_changes_and_log_status(self, message): statuses = self.commit_all_changes(message) - Logger.debug('[Git] A new commit {} was made in the current branch. Added files:'.format( + Logger.info('[Git] A new commit {} was made in the current branch. Added files:'.format( self.curr_commit)) for status, file in statuses: - Logger.debug('[Git]\t{} {}'.format(status, file)) + Logger.info('[Git]\t{} {}'.format(status, file)) pass @staticmethod diff --git a/dvc/logger.py b/dvc/logger.py index f8b76e8d9..3b6a8f207 100644 --- a/dvc/logger.py +++ b/dvc/logger.py @@ -1,24 +1,51 @@ -import sys - - class Logger(object): - @staticmethod - def printing(msg): - print(u'{}'.format(msg)) + DEFAULT_LEVEL = 2 + + LEVEL = DEFAULT_LEVEL + + LEVEL_MAP = { + 'debug': 1, + 'info': 2, + 'warn': 3, + 'error': 4 + } @staticmethod - def warn(msg): - print(u'Warning. {}'.format(msg)) + def set_level(level): + Logger.LEVEL = Logger.LEVEL_MAP.get(level.lower(), 'debug') @staticmethod - def error(msg): - #sys.stderr.write('Error. {}\n'.format(msg)) - print(u'Error. {}'.format(msg)) + def is_debug(): + return Logger.LEVEL <= 1 + + @staticmethod + def is_info(): + return Logger.LEVEL <= 2 + + @staticmethod + def is_warn(): + return Logger.LEVEL <= 3 + + @staticmethod + def is_error(): + return Logger.LEVEL <= 4 @staticmethod def debug(msg): - print(u'Debug. {}'.format(msg)) + if Logger.is_debug(): + print(u'Debug. {}'.format(msg)) @staticmethod def info(msg): - print(u'Info. {}'.format(msg)) \ No newline at end of file + if Logger.is_info(): + print(u'Info. {}'.format(msg)) + + @staticmethod + def warn(msg): + if Logger.is_warn(): + print(u'Warning. {}'.format(msg)) + + @staticmethod + def error(msg): + if Logger.is_error(): + print(u'Error. {}'.format(msg))