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

Source Code for Module iceprod.core.logger

 1  import logging, logging.handlers 
 2  import logging.config 
 3  import os,sys 
 4  import iceprod 
 5  from os.path import expandvars 
 6   
 7  setlevel = { 
 8    'CRITICAL': logging.CRITICAL, 
 9    'ERROR': logging.ERROR, 
10    'WARNING': logging.WARNING, 
11    'INFO': logging.INFO, 
12    'DEBUG': logging.DEBUG 
13    } 
14   
15  host = os.uname()[1].split(".")[0] 
16   
17 -class IceProdDgramHandler(logging.handlers.DatagramHandler):
18 - def __init__(self, host, port,site='?'):
19 self.site = site 20 logging.handlers.DatagramHandler.__init__(self, host, port)
21
22 - def emit(self, record):
23 if not record.name.startswith(self.site): # seen this message before 24 record.name = self.site +':'+ record.name 25 logging.handlers.DatagramHandler.emit(self,record)
26
27 -def setlogger(loggername,cfg=None):
28 29 if not cfg: 30 cfg = iceprod.getconfig('iceprodd.py') 31 32 logformat='%(asctime)s %(levelname)s %(name)s : %(message)s' 33 if cfg.has_option('logging','format'): 34 logformat=cfg.get('logging','format',raw=True) 35 36 loglevel = expandvars(cfg.get('logging','level')) 37 if cfg.has_option('logging',loggername): 38 logfile = expandvars(cfg.get('logging',loggername)) 39 else: 40 logfile = expandvars(cfg.get('logging','logfile')) 41 42 rootLogger = logging.getLogger('') 43 rootLogger.setLevel(setlevel[loglevel]) 44 45 if not logfile.strip() == 'sys.stdout': 46 if not logfile.startswith('/'): 47 logfile = expandvars(os.path.join(cfg.get('path','basedir'),logfile)) 48 if not os.path.exists(os.path.dirname(logfile)): 49 os.makedirs(os.path.dirname(logfile)) 50 fileHandler = logging.handlers.RotatingFileHandler(logfile,'a',1048576,4) 51 formatter = logging.Formatter(logformat) 52 fileHandler.setFormatter(formatter) 53 rootLogger.addHandler(fileHandler) 54 else: 55 logging.basicConfig() 56 57 if cfg.getboolean('logging','rmtlog') and loglevel not in ('DEBUG','TRACE'): 58 59 loghost,logport=cfg.get('logging','server').split(':') 60 udpHandler = IceProdDgramHandler(loghost, int(logport),site=cfg.get('queue','name')) 61 memoryHandler = logging.handlers.MemoryHandler(24, target=udpHandler) 62 rootLogger.addHandler(memoryHandler)
63