Package lib :: Package core :: Module logger
[hide private]
[frames] | no frames]

Source Code for Module lib.core.logger

 1  import logging 
 2  import logging.handlers 
 3  import os 
 4  import os.path as path 
 5   
 6   
7 -class Logger():
8 """ 9 Logger class that prints its messages and keeps them also inside a logfile 10 """ 11
12 - def __init__(self, logfile="./linspector.log", logLevel=logging.DEBUG, logfileLevel=logging.DEBUG):
13 """ 14 initializes a new Logger object. 15 16 :param logLevel: the LoggingLevel from the console output (DEBUG default) 17 :param logfile: the file where to log. Logs are rotated by default. 18 :param logfileLevel: the LoggingLevel for the file Logger. (DEBUG default) 19 """ 20 21 logfile = path.expanduser(logfile) 22 if not path.exists(path.dirname(logfile)): 23 os.makedirs(path.dirname(logfile)) 24 25 self.log = logging.getLogger("LinspectorLogger") 26 self.log.setLevel(logging.DEBUG) 27 28 consoleHandler = logging.StreamHandler() 29 consoleHandler.setLevel(logLevel) 30 31 fileHandler = logging.handlers.RotatingFileHandler(logfile, maxBytes=1024000, backupCount=4) 32 fileHandler.setLevel(logfileLevel) 33 34 consoleFormatter = logging.Formatter('[%(levelname)s]: %(message)s') 35 fileFormatter = logging.Formatter('%(asctime)s [%(levelname)s]: %(message)s') 36 37 consoleHandler.setFormatter(consoleFormatter) 38 fileHandler.setFormatter(fileFormatter) 39 40 self.log.addHandler(consoleHandler) 41 self.log.addHandler(fileHandler)
42
43 - def d(self, message):
44 self.log.debug(message)
45
46 - def i(self, message):
47 self.log.info(message)
48
49 - def w(self, message):
50 self.log.warn(message)
51
52 - def e(self, message):
53 self.log.error(message)
54
55 - def c(self, message):
56 self.log.critical(message)
57
58 - def close(self):
59 logging.shutdown()
60