[Python-checkins] python/dist/src/Lib/logging config.py,1.9,1.10

vsajip at users.sourceforge.net vsajip at users.sourceforge.net
Fri Sep 24 13:45:16 CEST 2004


Update of /cvsroot/python/python/dist/src/Lib/logging
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12481

Modified Files:
	config.py 
Log Message:
Added exception handling during handler initialization in fileConfig()

Index: config.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/logging/config.py,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- config.py	28 Feb 2004 16:05:50 -0000	1.9
+++ config.py	24 Sep 2004 11:45:13 -0000	1.10
@@ -98,31 +98,34 @@
                 handlers = {}
                 fixups = [] #for inter-handler references
                 for hand in hlist:
-                    sectname = "handler_%s" % hand
-                    klass = cp.get(sectname, "class")
-                    opts = cp.options(sectname)
-                    if "formatter" in opts:
-                        fmt = cp.get(sectname, "formatter")
-                    else:
-                        fmt = ""
-                    klass = eval(klass, vars(logging))
-                    args = cp.get(sectname, "args")
-                    args = eval(args, vars(logging))
-                    h = apply(klass, args)
-                    if "level" in opts:
-                        level = cp.get(sectname, "level")
-                        h.setLevel(logging._levelNames[level])
-                    if len(fmt):
-                        h.setFormatter(formatters[fmt])
-                    #temporary hack for FileHandler and MemoryHandler.
-                    if klass == logging.handlers.MemoryHandler:
-                        if "target" in opts:
-                            target = cp.get(sectname,"target")
+                    try:
+                        sectname = "handler_%s" % hand
+                        klass = cp.get(sectname, "class")
+                        opts = cp.options(sectname)
+                        if "formatter" in opts:
+                            fmt = cp.get(sectname, "formatter")
                         else:
-                            target = ""
-                        if len(target): #the target handler may not be loaded yet, so keep for later...
-                            fixups.append((h, target))
-                    handlers[hand] = h
+                            fmt = ""
+                        klass = eval(klass, vars(logging))
+                        args = cp.get(sectname, "args")
+                        args = eval(args, vars(logging))
+                        h = apply(klass, args)
+                        if "level" in opts:
+                            level = cp.get(sectname, "level")
+                            h.setLevel(logging._levelNames[level])
+                        if len(fmt):
+                            h.setFormatter(formatters[fmt])
+                        #temporary hack for FileHandler and MemoryHandler.
+                        if klass == logging.handlers.MemoryHandler:
+                            if "target" in opts:
+                                target = cp.get(sectname,"target")
+                            else:
+                                target = ""
+                            if len(target): #the target handler may not be loaded yet, so keep for later...
+                                fixups.append((h, target))
+                        handlers[hand] = h
+                    except:     #if an error occurs when instantiating a handler, too bad
+                        pass    #this could happen e.g. because of lack of privileges
                 #now all handlers are loaded, fixup inter-handler references...
                 for fixup in fixups:
                     h = fixup[0]



More information about the Python-checkins mailing list