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

Source Code for Module PyFoam.Infrastructure.Logging

 1  #  ICE Revision: $Id: /local/openfoam/Python/PyFoam/PyFoam/Infrastructure/Logging.py 1906 2007-08-28T16:16:19.392553Z bgschaid  $  
 2  """Writes Logfiles""" 
 3   
 4  try: 
 5      import logging 
 6      hasLogging=True 
 7  except ImportError: 
 8      # For Python-versions < 2.3 
 9      print "Warning: old python-version. No logging-support" 
10      hasLogging=False 
11       
12  from Hardcoded import assertDirectory,logDirectory 
13  from os import path,uname 
14   
15  from PyFoam import configuration as config 
16   
17  _definedLoggers=[] 
18   
19 -def _getLoggingLevel(name):
20 """Gets the logging level value from its name""" 21 level=config().get("Logging","default") 22 23 try: 24 level=config().get("Logging",name) 25 except: 26 pass 27 28 value=logging.INFO 29 try: 30 value=getattr(logging,level) 31 except AttributeError,reason: 32 print "WARNING: Wrong specification of debug level "+level+" for log "+name 33 34 return value
35
36 -class DummyLogger:
37 - def __init__(self):
38 pass
39
40 - def info(self,arg):
41 pass
42
43 -def foamLogger(name="general"):
44 """ 45 @param name: name of the logfile 46 @return: a logger that is correctly set up for pyFoam 47 """ 48 49 if not hasLogging: 50 return DummyLogger() 51 52 log=logging.getLogger(name) 53 if not (name in _definedLoggers): 54 assertDirectory(logDirectory()) 55 lname=path.join(logDirectory(),name) 56 # rot=logging.TimedRotatingFileHandler(lname,when="M",interval=2,backupCount=5) 57 rot=logging.FileHandler(lname) 58 machine=uname()[1].split(".")[0] 59 rot.setFormatter(logging.Formatter(fmt="%(asctime)s "+("%15s" % machine)+":%(process)-6d %(levelname)-8s %(message)s - in %(filename)s:%(lineno)d")) 60 log.addHandler(rot) 61 log.setLevel(_getLoggingLevel(name)) 62 _definedLoggers.append(name) 63 64 return log
65