hackedteam/test-av2

View on GitHub
AVCommon/logger.py

Summary

Maintainability
A
0 mins
Test Coverage
__author__ = 'fabrizio'

import logging as l
#import logging.config
import yaml
import os
import time

from AVCommon import package

logname = "avmonitor.log"
logdir_base = "%s/logs" % ( package.basedir )
logdir = logdir_base

if not os.path.exists(logdir):
    os.mkdir(logdir)

#with open("../AVCommon/logging.yml") as o:
#    logging.config.dictConfig(yaml.load(o))

class LogWrap:
    def __getattr__(self, item):
        logger = l.getLogger('AVM')
        return logger.__getattribute__(item)

logging = LogWrap()


def init(report = "", logname_arg = "avmonitor.log", quiet=False):
    #print "init report: %s" % report
    global logdir, logname

    if report:
        logdir = "%s/%s" % (logdir_base, report)
        logname = logname_arg
        if not quiet:
            setStreamLogger()
        logging = setFileLogger(logdir, logname_arg)

    else:
        logging = setStreamLogger()

    #globals()["logging"] = logging

def setStreamLogger():
    # TODO
    ts = time.strftime("%y%m%d-%H%M%S", time.localtime(time.time()))

    FORMAT= '%(asctime)s %(levelname)7s %(filename)14s:%(lineno)3d| %(message)s'
    DATE_FORMAT= '%Y%m%d %H%M%S'

    formatter = l.Formatter(fmt=FORMAT, datefmt=DATE_FORMAT)

    handler = l.StreamHandler()
    handler.setFormatter(formatter)

    logger = l.getLogger('AVM')
    logger.setLevel(l.DEBUG)
    logger.addHandler(handler)

    return logger

def setFileLogger(report_dir, logname_arg):
    ts = time.strftime("%y%m%d-%H%M%S", time.localtime(time.time()))

    FORMAT= '%(asctime)s %(levelname)7s %(filename)14s:%(lineno)3d| %(message)s'
    DATE_FORMAT= '%Y%m%d %H%M%S'

    formatter = l.Formatter(fmt=FORMAT, datefmt=DATE_FORMAT)
    #filename = "%s/avmonitor-%s.log" % (logdir, ts)

    if not os.path.exists(report_dir):
        os.mkdir(report_dir)

    #filename  = "%s/avmonitor-%s.log" % (report_dir, ts)
    filename  = "%s/%s" % (report_dir, logname_arg)
    file_handler = l.FileHandler(filename)
    file_handler.setLevel(l.DEBUG)
    file_handler.setFormatter(formatter)

    #handler = l.StreamHandler()
    #handler.setFormatter(formatter)

    logger = l.getLogger('AVM')
    logger.setLevel(l.DEBUG)

    #logger.addHandler(handler)
    logger.addHandler(file_handler)

    logger.info("START %s" % (report_dir))

    return logger

#init()
#logging.info("START LOGGING")