linspector-old/lib/core/logger.py
RafTim 856c603c61 Update logger.py
native python loggin ;)
2013-05-20 05:58:28 +03:00

79 lines
2.2 KiB
Python

#! /usr/bin/python
import logging, logging.handlers
import os.path as path
class Logger():
'''Logger class that prints its messages and keeps them also inside a logfile'''
def __init__(self,logLevel=logging.DEBUG, logfile="var/log/linspector.log", logfileLevel=logging.DEBUG):
'''
initializes a new Logger object.
params:
logLevel the LoggingLevel from the console output (DEBUG default)
logfile the file where to log. Logs are rotated by default.
logfileLevel the LoggingLevel for the file Logger. (DEBUG default)
'''
logfile=path.expanduser(logfile)
if not path.exists(path.dirname(logfile)):
os.makedirs(path.dirname(logfile))
self.log = logging.getLogger("LinspectorLogger")
self.log.setLevel(logging.DEBUG)
consoleHandler = logging.StreamHandler()
consoleHandler.setLevel(logLevel)
fileHandler = logging.handlers.RotatingFileHandler(logfile, maxBytes=2048, backupCount=4)
fileHandler.setLevel(logfileLevel)
consoleFormatter = logging.Formatter('[%(levelname)s]: %(message)s')
fileFormatter = logging.Formatter('%(asctime)s [%(levelname)s]: %(message)s')
consoleHandler.setFormatter(consoleFormatter)
fileHandler.setFormatter(fileFormatter)
self.log.addHandler(consoleHandler)
self.log.addHandler(fileHandler)
def d(self, message):
self.log.debug(message)
def i(self, message):
self.log.info(message)
def w(self, message, category=None):
self.log.warn(message, category)
def e(self, message):
self.log.error(message)
def c(self, message):
self.log.critical(message)
self.log.critical(message)
LOGGER=Logger()
def logVerbose(message, verbose=True):
LOGGER.d(message)
def logNotice(message, verbose=True):
LOGGER.i(message)
def logWarning(message):
LOGGER.w(message)
def logWarningConfig(file="file", missing="missing"):
logWarning("in " + file + ": The " + missing + " is not defined")
def writeLogToFile(logfile, message):
pass #always written to file...