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
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
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
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