linspector-old/lib/core/logger.py

79 lines
2.1 KiB
Python
Raw Normal View History

2013-05-21 02:45:03 +02:00
import logging
import logging.handlers
import os
import os.path as path
2013-05-16 23:03:00 +02:00
2013-05-21 02:45:03 +02:00
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()
2013-05-16 23:03:00 +02:00
def logVerbose(message, verbose=True):
2013-05-21 02:45:03 +02:00
LOGGER.d(message)
2013-05-16 23:03:00 +02:00
def logNotice(message, verbose=True):
2013-05-21 02:45:03 +02:00
LOGGER.i(message)
2013-05-16 23:03:00 +02:00
def logWarning(message):
2013-05-21 02:45:03 +02:00
LOGGER.w(message)
2013-05-16 23:03:00 +02:00
def logWarningConfig(file="file", missing="missing"):
logWarning("in " + file + ": The " + missing + " is not defined")
def writeLogToFile(logfile, message):
2013-05-21 02:45:03 +02:00
pass #always written to file...