Package PyFoam :: Package Infrastructure :: Module Logging
[hide private]
[frames] | no frames]

Source Code for Module PyFoam.Infrastructure.Logging

 1  """Writes Logfiles""" 
 2   
 3  import logging 
 4   
 5  from Hardcoded import assertDirectory,logDirectory 
 6  from os import path,uname 
 7   
 8  from PyFoam import configuration as config 
 9   
10  _definedLoggers=[] 
11   
12 -def _getLoggingLevel(name):
13 """Gets the logging level value from its name""" 14 level=config().get("Logging","default") 15 16 try: 17 level=config().get("Logging",name) 18 except: 19 pass 20 21 value=logging.INFO 22 try: 23 value=getattr(logging,level) 24 except AttributeError,reason: 25 print "WARNING: Wrong specification of debug level "+level+" for log "+name 26 27 return value
28
29 -def foamLogger(name="general"):
30 """ 31 @param name: name of the logfile 32 @return: a logger that is correctly set up for pyFoam 33 """ 34 35 log=logging.getLogger(name) 36 if not (name in _definedLoggers): 37 assertDirectory(logDirectory()) 38 lname=path.join(logDirectory(),name) 39 # rot=logging.TimedRotatingFileHandler(lname,when="M",interval=2,backupCount=5) 40 rot=logging.FileHandler(lname) 41 machine=uname()[1].split(".")[0] 42 rot.setFormatter(logging.Formatter(fmt="%(asctime)s "+("%15s" % machine)+":%(process)-6d %(levelname)-8s %(message)s - in %(filename)s:%(lineno)d")) 43 log.addHandler(rot) 44 log.setLevel(_getLoggingLevel(name)) 45 _definedLoggers.append(name) 46 47 return log
48