AVCommon/logger.py
__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")