Source code for core.log
# core/log.py
#
#
""" provide logging infrastructure. """
__copyright__ = "Copyright 2014 B.H.J Thate"
## IMPORTS
from core.defines import BOLD, BLUE, RED, GREEN, YELLOW, ENDC
from core.utils import error, j, cdir, short_date
import logging.handlers
import logging
import time
import sys
import os
import re
## DEFINES
homedir = os.path.expanduser("~")
logdir = j(homedir, "core.logs", "")
enabled = False
datefmt = '%H:%M:%S'
format = "%(asctime)-8s %(message)s %(module)s.%(lineno)s"
format_small = "%(asctime)-8s %(message)s"
LEVELS = {'debug': logging.DEBUG,
'info': logging.INFO,
'warning': logging.WARNING,
'warn': logging.WARNING,
'error': logging.ERROR,
'critical': logging.CRITICAL
}
## CLASSES
[docs]def init(loglevel):
""" return a properly configured logger. """
logger = logging.getLogger("")
formatter = Formatter(format, datefmt=datefmt)
formatter_short = Formatter(format_small, datefmt=datefmt)
level = LEVELS.get(str(loglevel).lower(), logging.NOTSET)
filehandler = None
logger.setLevel(level)
if logger.handlers:
for handler in logger.handlers: logger.removeHandler(handler)
if not os.path.exists(logdir): cdir(logdir)
try: filehandler = logging.handlers.TimedRotatingFileHandler(j(logdir, "log"), 'midnight')
except: error()
ch = logging.StreamHandler()
ch.setLevel(level)
ch.setFormatter(formatter_short)
logger.addHandler(ch)
if filehandler:
filehandler.setFormatter(formatter_short)
filehandler.setLevel(level)
logger.addHandler(filehandler)
global enabled
enabled = True
return logger