import os
import logging
class Logger(object):
@staticmethod
def string_to_loglevel(loglevel):
logLevelMap = {
"error": logging.ERROR,
"warning": logging.WARNING,
"info": logging.INFO,
"debug": logging.DEBUG,
}
return logLevelMap.get(loglevel, logging.INFO)
@staticmethod
def getLogger(mymodule, logpath=None, loglevel="info"):
logfile = mymodule + ".log"
if logpath is not None:
if not os.path.isdir(logpath):
os.makedirs(logpath)
logfile = logpath + "/" + logfile
logger = logging.getLogger(mymodule)
if not logger.handlers:
#creating file handler
fhandler = logging.FileHandler(logfile)
# create console handler
ch = logging.StreamHandler()
fhformatter = logging.Formatter('%(asctime)s - %(name)s - %(message)s')
if loglevel=="debug":
chformatter = logging.Formatter('%(asctime)s - %(name)s - %(message)s')
else:
chformatter = logging.Formatter('%(message)s')
# add formatter to handler
fhandler.setFormatter(fhformatter)
#fhandler.setLevel(logging.DEBUG)
ch.setFormatter(chformatter)
#ch.setLevel(Logger.string_to_loglevel(loglevel))
logger.setLevel(Logger.string_to_loglevel(loglevel))
logger.addHandler(ch)
logger.addHandler(fhandler)
logger.debug("-" * 75)
logger.debug("Starting Log")
logger.debug("-" * 75)
return logger
if __name__ == "__main__":
#Logger.getLogger("my module")
t1 = Logger.getLogger("my module")
t1.info("test1")
t2 = Logger.getLogger("my module")
t2.info("test2")
t1.info("test3")