From 53316ac7b87e7d674e012a5c71f2b08d41c027f8 Mon Sep 17 00:00:00 2001 From: Ross Brattain Date: Wed, 21 Jun 2017 18:49:08 -0700 Subject: move logging to runtime init There are many ways to init logging, but doing import-time logic can cause problems. For yardstick we are doing this type of run-time init in the main program startup. This allows for some flexibiliy since we just set the root loggers. Every other logger is standard, not subclassed Change-Id: I7004a147f03a7104f373141caf9206d8e49a5d4c Signed-off-by: Ross Brattain --- anteater/__init__.py | 4 +++ anteater/main.py | 44 +++++++++++++++++++++++++++------ anteater/src/get_lists.py | 4 +-- anteater/src/patch_scan.py | 4 +-- anteater/src/project_scan.py | 4 +-- anteater/utils/__init__.py | 7 ------ anteater/utils/anteater_logger.py | 51 --------------------------------------- 7 files changed, 47 insertions(+), 71 deletions(-) delete mode 100644 anteater/utils/__init__.py delete mode 100644 anteater/utils/anteater_logger.py (limited to 'anteater') diff --git a/anteater/__init__.py b/anteater/__init__.py index e69de29..d514059 100644 --- a/anteater/__init__.py +++ b/anteater/__init__.py @@ -0,0 +1,4 @@ +from __future__ import absolute_import +import logging + +LOG = logging.getLogger(__name__) diff --git a/anteater/main.py b/anteater/main.py index 3a23ceb..ef127c2 100644 --- a/anteater/main.py +++ b/anteater/main.py @@ -25,33 +25,63 @@ Options: """ from __future__ import absolute_import +import errno +import logging + +import os import six.moves.configparser from docopt import docopt -import os + +from anteater import LOG from anteater.src.patch_scan import prepare_patchset from anteater.src.project_scan import prepare_project -from anteater.utils import anteater_logger as antlog - config = six.moves.configparser.RawConfigParser() config.read('anteater.conf') reports_dir = config.get('config', 'reports_dir') -logger = antlog.Logger(__name__).getLogger() __version__ = "0.1" +logger = logging.getLogger(__name__) + + +def _init_logging(anteater_log): + """ Setup root logger for package """ + + LOG.setLevel(logging.DEBUG) + ch = logging.StreamHandler() + formatter = logging.Formatter('%(asctime)s - %(name)s - ' + '%(levelname)s - %(message)s') + ch.setFormatter(formatter) + ch.setLevel(logging.DEBUG) + + # create the directory if it does not exist + path = os.path.dirname(anteater_log) + try: + os.makedirs(path) + except OSError as e: + if e.errno != errno.EEXIST: + raise + + handler = logging.FileHandler(anteater_log) + handler.setFormatter(formatter) + handler.setLevel(logging.DEBUG) + del logging.root.handlers[:] + logging.root.addHandler(ch) + logging.root.addHandler(handler) def check_dir(): """ Creates a directory for scan reports """ try: os.makedirs(reports_dir) - logger.info('Creating reports directory: {0}'.format(reports_dir)) + logger.info('Creating reports directory: %s', reports_dir) except OSError as e: - if not os.path.isdir(reports_dir): - logger.error(e) + if e.errno != errno.EEXIST: + raise def main(): """ Main function, mostly for passing arguments """ + _init_logging(config.get('config', 'anteater_log')) check_dir() arguments = docopt(__doc__, version=__version__) diff --git a/anteater/src/get_lists.py b/anteater/src/get_lists.py index e27335a..b8c6cda 100644 --- a/anteater/src/get_lists.py +++ b/anteater/src/get_lists.py @@ -15,7 +15,7 @@ """ from __future__ import absolute_import -import anteater.utils.anteater_logger as antlog +import logging import six.moves.configparser import copy import os @@ -25,7 +25,7 @@ import re config = six.moves.configparser.RawConfigParser() config.read('anteater.conf') -logger = antlog.Logger(__name__).getLogger() +logger = logging.getLogger(__name__) master_list = config.get('config', 'master_list') with open(master_list, 'r') as f: diff --git a/anteater/src/patch_scan.py b/anteater/src/patch_scan.py index 71604a8..e61dfca 100644 --- a/anteater/src/patch_scan.py +++ b/anteater/src/patch_scan.py @@ -18,7 +18,7 @@ from __future__ import division, print_function, absolute_import from binaryornot.check import is_binary -import anteater.utils.anteater_logger as antlog +import logging import hashlib import six.moves.configparser import sys @@ -26,7 +26,7 @@ import re from . import get_lists -logger = antlog.Logger(__name__).getLogger() +logger = logging.getLogger(__name__) config = six.moves.configparser.RawConfigParser() config.read('anteater.conf') reports_dir = config.get('config', 'reports_dir') diff --git a/anteater/src/project_scan.py b/anteater/src/project_scan.py index 647c256..3886801 100644 --- a/anteater/src/project_scan.py +++ b/anteater/src/project_scan.py @@ -20,12 +20,12 @@ import hashlib import six.moves.configparser import os import re -import anteater.utils.anteater_logger as antlog +import logging from binaryornot.check import is_binary from . import get_lists -logger = antlog.Logger(__name__).getLogger() +logger = logging.getLogger(__name__) config = six.moves.configparser.RawConfigParser() config.read('anteater.conf') reports_dir = config.get('config', 'reports_dir') diff --git a/anteater/utils/__init__.py b/anteater/utils/__init__.py deleted file mode 100644 index 1db8868..0000000 --- a/anteater/utils/__init__.py +++ /dev/null @@ -1,7 +0,0 @@ -from __future__ import absolute_import -import pkg_resources - -try: - __version__ = pkg_resources.get_distribution(__name__).version -except: - __version__ = 'unknown' diff --git a/anteater/utils/anteater_logger.py b/anteater/utils/anteater_logger.py deleted file mode 100644 index 785e644..0000000 --- a/anteater/utils/anteater_logger.py +++ /dev/null @@ -1,51 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -############################################################################## -# Copyright (c) 2017 jose.lausuch@ericsson.com -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 -############################################################################## - -from __future__ import absolute_import - -import logging - -import os -import six.moves.configparser - -config = six.moves.configparser.RawConfigParser() -config.read('anteater.conf') -anteater_log = config.get('config', 'anteater_log') - - -class Logger: - def __init__(self, logger_name): - self.logger = logging.getLogger(logger_name) - self.logger.propagate = 0 - self.logger.setLevel(logging.DEBUG) - - ch = logging.StreamHandler() - formatter = logging.Formatter('%(asctime)s - %(name)s - ' - '%(levelname)s - %(message)s') - ch.setFormatter(formatter) - ch.setLevel(logging.DEBUG) - self.logger.addHandler(ch) - - # create the directory if not existed - path = os.path.dirname(anteater_log) - if ( False == os.path.exists(path)): - try: - os.makedirs(path) - except OSError as e: - raise e - - handler = logging.FileHandler(anteater_log) - handler.setFormatter(formatter) - handler.setLevel(logging.DEBUG) - self.logger.addHandler(handler) - - def getLogger(self): - return self.logger -- cgit 1.2.3-korg