Merge pull request #1 from RafTim/patch-1

Update logger.py
This commit is contained in:
Johannes Findeisen 2013-05-20 13:48:58 -07:00
commit 9fff50589b

View file

@ -1,22 +1,74 @@
from datetime import datetime
#! /usr/bin/python
DEBUG = "[debug]"
NOTICE = "[notice]"
WARNING = "[warning]"
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):
if verbose:
print DEBUG + " " + str(message)
LOGGER.d(message)
def logNotice(message, verbose=True):
if verbose:
print NOTICE + " " + str(message)
LOGGER.i(message)
def logWarning(message):
print WARNING + " " + message
LOGGER.w(message)
def logWarningConfig(file="file", missing="missing"):
@ -24,17 +76,4 @@ def logWarningConfig(file="file", missing="missing"):
def writeLogToFile(logfile, message):
f = open(logfile, 'a')
f.write("[" + str(datetime.now()) + "] " + message + '\n')
f.close()
class Logger:
def __init__(self, logfile="/dev/null"):
self.logfile = logfile
def logSomething(message, verbose=False):
f = open(self.logfile, 'a')
f.write("[" + str(datetime.now()) + "] " + message + '\n')
f.close()
pass #always written to file...