diff options
author | Ross Brattain <ross.b.brattain@intel.com> | 2017-06-21 18:49:08 -0700 |
---|---|---|
committer | Ross Brattain <ross.b.brattain@intel.com> | 2017-07-01 02:33:41 -0700 |
commit | 53316ac7b87e7d674e012a5c71f2b08d41c027f8 (patch) | |
tree | f814aa3f0a35324b123aba2f6a5d232d01677691 /anteater/main.py | |
parent | eceefe7114bc5d0fc94ac77ee4e510c94c1a76bf (diff) |
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 <ross.b.brattain@intel.com>
Diffstat (limited to 'anteater/main.py')
-rw-r--r-- | anteater/main.py | 44 |
1 files changed, 37 insertions, 7 deletions
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__) |