Package starcluster :: Module logger
[hide private]
[frames] | no frames]

Source Code for Module starcluster.logger

 1  #!/usr/bin/env python 
 2  """ 
 3  StarCluster logging module 
 4  """ 
 5  import types 
 6  import logging 
 7  import logging.handlers 
 8  from logging import INFO, DEBUG, WARN, ERROR, FATAL 
 9   
10  from starcluster import static 
11   
12  INFO_NO_NEWLINE = logging.INFO + 1 
13   
14 -class ConsoleLogger(logging.StreamHandler):
15 16 formatters = { logging.INFO: logging.Formatter(">>> %(message)s\n"), 17 INFO_NO_NEWLINE: logging.Formatter(">>> %(message)s"), 18 logging.DEBUG: logging.Formatter("%(filename)s:%(lineno)d - %(levelname)s - %(message)s\n"), 19 logging.WARN: logging.Formatter("%(filename)s:%(lineno)d - %(levelname)s - %(message)s\n"), 20 logging.CRITICAL: logging.Formatter("%(filename)s:%(lineno)d - %(levelname)s - %(message)s\n"), 21 logging.ERROR: logging.Formatter("%(filename)s:%(lineno)d - %(levelname)s - %(message)s\n")} 22
23 - def format(self,record):
24 return self.formatters[record.levelno].format(record)
25
26 - def emit(self, record):
27 try: 28 msg = self.format(record) 29 fs = "%s" 30 if not hasattr(types, "UnicodeType"): #if no unicode support... 31 self.stream.write(fs % msg) 32 else: 33 try: 34 self.stream.write(fs % msg) 35 except UnicodeError: 36 self.stream.write(fs % msg.encode("UTF-8")) 37 self.flush() 38 except (KeyboardInterrupt, SystemExit): 39 raise 40 except: 41 self.handleError(record)
42 43 log = logging.getLogger('starcluster') 44 log.setLevel(logging.DEBUG) 45 46 formatter = logging.Formatter("%(filename)s:%(lineno)d - %(levelname)s - %(message)s") 47 48 rfh = logging.handlers.RotatingFileHandler(static.DEBUG_FILE, 49 maxBytes=1048576, 50 backupCount=2) 51 rfh.setLevel(logging.DEBUG) 52 rfh.setFormatter(formatter) 53 log.addHandler(rfh) 54 55 console = ConsoleLogger() 56 console.setLevel(logging.INFO) 57 log.addHandler(console) 58 59 #import platform 60 #if platform.system() == "Linux": 61 #import os 62 #log_device = '/dev/log' 63 #if os.path.exists(log_device): 64 #log.debug("Logging to %s" % log_device) 65 #syslog_handler = logging.handlers.SysLogHandler(address=log_device) 66 #syslog_handler.setFormatter(formatter) 67 #syslog_handler.setLevel(logging.DEBUG) 68 #log.addHandler(syslog_handler) 69