diff --git a/timmy/cli.py b/timmy/cli.py index 58ee73f..23ede62 100755 --- a/timmy/cli.py +++ b/timmy/cli.py @@ -15,14 +15,15 @@ # License for the specific language governing permissions and limitations # under the License. -import argparse -from timmy.nodes import Node, NodeManager -import logging -import sys -import os from timmy.conf import load_conf +from timmy.env import project_name, version +from timmy.nodes import Node, NodeManager from timmy.tools import interrupt_wrapper -from timmy.env import version +import argparse +import logging +import logging.handlers +import os +import sys def pretty_run(quiet, msg, f, args=[], kwargs={}): @@ -202,13 +203,17 @@ def main(argv=None): args.verbose = 0 loglevel = loglevels[min(len(loglevels)-1, args.verbose)] # always enable debug log if log file specificed - loglevel = logging.DEBUG if args.log_file else loglevel - FORMAT = ('%(asctime)s %(levelname)s: %(module)s: ' - '%(funcName)s(): %(message)s') - logging.basicConfig(filename=args.log_file, - level=loglevel, - format=FORMAT) - logger = logging.getLogger(__name__) + if args.log_file: + loglevel = logging.DEBUG + log_handler = logging.handlers.WatchedFileHandler(args.log_file) + else: + log_handler = logging.StreamHandler() + formatter = logging.Formatter('%(asctime)s %(levelname)s: %(module)s: ' + '%(funcName)s(): %(message)s') + log_handler.setFormatter(formatter) + logger = logging.getLogger(project_name) + logger.addHandler(log_handler) + logger.setLevel(loglevel) conf = load_conf(args.config) if args.fuel_ip: conf['fuel_ip'] = args.fuel_ip diff --git a/timmy/env.py b/timmy/env.py index 8dbaef5..a152f29 100644 --- a/timmy/env.py +++ b/timmy/env.py @@ -16,7 +16,7 @@ # under the License. project_name = 'timmy' -version = '1.20.4' +version = '1.20.5' if __name__ == '__main__': import sys diff --git a/timmy/nodes.py b/timmy/nodes.py index 280992f..11ba328 100644 --- a/timmy/nodes.py +++ b/timmy/nodes.py @@ -19,17 +19,18 @@ main module """ -import json -import os -import shutil -import logging -import sys -import re -from datetime import datetime, date, timedelta -import urllib2 -import tools -from tools import w_list, run_with_lock from copy import deepcopy +from datetime import datetime, date, timedelta +from timmy.env import project_name +from tools import w_list, run_with_lock +import json +import logging +import os +import re +import shutil +import sys +import tools +import urllib2 try: import fuelclient @@ -73,7 +74,7 @@ class Node(object): def __init__(self, ip, conf, id=None, name=None, fqdn=None, mac=None, cluster=None, roles=None, os_platform=None, online=True, status="ready", logger=None): - self.logger = logger or logging.getLogger(__name__) + self.logger = logger or logging.getLogger(project_name) self.id = int(id) if id is not None else None self.mac = mac self.cluster = int(cluster) if cluster is not None else None @@ -528,7 +529,7 @@ class NodeManager(object): def __init__(self, conf, extended=False, nodes_json=None, logger=None): self.conf = conf - self.logger = logger or logging.getLogger(__name__) + self.logger = logger or logging.getLogger(project_name) if conf['outputs_timestamp'] or conf['dir_timestamp']: timestamp_str = datetime.now().strftime('_%F_%H-%M-%S') if conf['outputs_timestamp']: diff --git a/timmy/tools.py b/timmy/tools.py index 71f1e1a..48ba5cb 100644 --- a/timmy/tools.py +++ b/timmy/tools.py @@ -23,6 +23,7 @@ from flock import FLock from multiprocessing import Process, Queue, BoundedSemaphore from pipes import quote from tempfile import gettempdir +from timmy.env import project_name import json import logging import os @@ -33,7 +34,7 @@ import threading import traceback import yaml -logger = logging.getLogger(__name__) +logger = logging.getLogger(project_name) slowpipe = ''' import sys import time @@ -84,13 +85,13 @@ class RunItem(): self.key = key self.process = None self.queue = None - self.logger = logger or logging.getLogger(__name__) + self.logger = logger or logging.getLogger(project_name) class SemaphoreProcess(Process): def __init__(self, semaphore, target, args=None, queue=None, logger=None): Process.__init__(self) - self.logger = logger or logging.getLogger(__name__) + self.logger = logger or logging.getLogger(project_name) self.semaphore = semaphore self.target = target if not args: