diff --git a/tupak/core/utils.py b/tupak/core/utils.py index 9e9c0f04f96915571d0eeca8a682c053517c43fc..3dd360485f2779995f7634036f76992fb18d55e0 100644 --- a/tupak/core/utils.py +++ b/tupak/core/utils.py @@ -231,7 +231,7 @@ def infft(hf, Fs): return h -def setup_logger(outdir=None, label=None, log_level=None): +def setup_logger(outdir=None, label=None, log_level=None, print_version=False): """ Setup logging output: call at the start of the script to use Parameters @@ -241,6 +241,8 @@ def setup_logger(outdir=None, label=None, log_level=None): log_level = ['debug', 'info', 'warning'] Either a string from the list above, or an interger as specified in https://docs.python.org/2/library/logging.html#logging-levels + print_version: bool + If true, print version information """ if type(log_level) is str: @@ -254,25 +256,28 @@ def setup_logger(outdir=None, label=None, log_level=None): LEVEL = int(log_level) logger = logging.getLogger() - stream_handler = logging.StreamHandler() - stream_handler.setFormatter(logging.Formatter( - '%(asctime)s %(levelname)-8s: %(message)s', datefmt='%H:%M')) logger.setLevel(LEVEL) - stream_handler.setLevel(LEVEL) - logger.addHandler(stream_handler) - - if label: - if outdir: - check_directory_exists_and_if_not_mkdir(outdir) - else: - outdir = '.' - log_file = '{}/{}.log'.format(outdir, label) - file_handler = logging.FileHandler(log_file) - file_handler.setFormatter(logging.Formatter( - '%(asctime)s %(levelname)-8s: %(message)s', datefmt='%H:%M')) - file_handler.setLevel(LEVEL) - logger.addHandler(file_handler) + if any([type(h) == logging.StreamHandler for h in logger.handlers]) is False: + stream_handler = logging.StreamHandler() + stream_handler.setFormatter(logging.Formatter( + '%(asctime)s %(levelname)-8s: %(message)s', datefmt='%H:%M')) + stream_handler.setLevel(LEVEL) + logger.addHandler(stream_handler) + + if any([type(h) == logging.FileHandler for h in logger.handlers]) is False: + if label: + if outdir: + check_directory_exists_and_if_not_mkdir(outdir) + else: + outdir = '.' + log_file = '{}/{}.log'.format(outdir, label) + file_handler = logging.FileHandler(log_file) + file_handler.setFormatter(logging.Formatter( + '%(asctime)s %(levelname)-8s: %(message)s', datefmt='%H:%M')) + + file_handler.setLevel(LEVEL) + logger.addHandler(file_handler) version_file = os.path.join( os.path.dirname(os.path.dirname(__file__)), '.version') @@ -377,6 +382,7 @@ def set_up_command_line_arguments(): command_line_args = set_up_command_line_arguments() +setup_logger(print_version=True) if 'DISPLAY' in os.environ: logging.debug("DISPLAY={} environment found".format(os.environ['DISPLAY']))