]> granicus.if.org Git - python/commitdiff
#Issue 11424: merged fix from 3.1.
authorVinay Sajip <vinay_sajip@yahoo.co.uk>
Mon, 7 Mar 2011 17:59:50 +0000 (17:59 +0000)
committerVinay Sajip <vinay_sajip@yahoo.co.uk>
Mon, 7 Mar 2011 17:59:50 +0000 (17:59 +0000)
1  2 
Lib/logging/config.py
Lib/test/test_logging.py

index 5afdf9f8d73b19351fb82eb50b6f4d7ab950d41d,25f34ecd24b0a519301f2b6df319a4cb616b47bb..52797ce41d74b5ffc66e6198e008c08702b1d61d
@@@ -221,22 -217,26 +221,22 @@@ def _install_loggers(cp, handlers, disa
      child_loggers = []
      #now set up the new ones...
      for log in llist:
 -        sectname = "logger_%s" % log
 -        qn = cp.get(sectname, "qualname")
 -        opts = cp.options(sectname)
 -        if "propagate" in opts:
 -            propagate = cp.getint(sectname, "propagate")
 -        else:
 -            propagate = 1
 +        section = cp["logger_%s" % log]
 +        qn = section["qualname"]
 +        propagate = section.getint("propagate", fallback=1)
          logger = logging.getLogger(qn)
          if qn in existing:
-             i = existing.index(qn)
+             i = existing.index(qn) + 1 # start with the entry after qn
              prefixed = qn + "."
              pflen = len(prefixed)
              num_existing = len(existing)
-             i = i + 1 # look at the entry after qn
-             while (i < num_existing) and (existing[i][:pflen] == prefixed):
-                 child_loggers.append(existing[i])
-                 i = i + 1
+             while i < num_existing:
+                 if existing[i][:pflen] == prefixed:
+                     child_loggers.append(existing[i])
+                 i += 1
              existing.remove(qn)
 -        if "level" in opts:
 -            level = cp.get(sectname, "level")
 +        if "level" in section:
 +            level = section["level"]
              logger.setLevel(logging._levelNames[level])
          for h in logger.handlers[:]:
              logger.removeHandler(h)
index b29d4005eebbca8944b9a90a8bfbd022eb5ba4d0,9b36350fbec8ebb7d74415fadd2fc43ab1c3d058..e05f7b82b952e1c4cbc2cb402102f7f4afa3a029
@@@ -689,9 -663,53 +721,47 @@@ class ConfigFileTest(BaseTest)
      datefmt=
      """
  
+     # config7 adds a compiler logger.
+     config7 = """
+     [loggers]
+     keys=root,parser,compiler
+     [handlers]
+     keys=hand1
+     [formatters]
+     keys=form1
+     [logger_root]
+     level=WARNING
+     handlers=hand1
+     [logger_compiler]
+     level=DEBUG
+     handlers=
+     propagate=1
+     qualname=compiler
+     [logger_parser]
+     level=DEBUG
+     handlers=
+     propagate=1
+     qualname=compiler.parser
+     [handler_hand1]
+     class=StreamHandler
+     level=NOTSET
+     formatter=form1
+     args=(sys.stdout,)
+     [formatter_form1]
+     format=%(levelname)s ++ %(message)s
+     datefmt=
+     """
      def apply_config(self, conf):
 -        try:
 -            fn = tempfile.mktemp(".ini")
 -            f = open(fn, "w")
 -            f.write(textwrap.dedent(conf))
 -            f.close()
 -            logging.config.fileConfig(fn)
 -        finally:
 -            os.remove(fn)
 +        file = io.StringIO(textwrap.dedent(conf))
 +        logging.config.fileConfig(file)
  
      def test_config0_ok(self):
          # A simple config file which overrides the default settings.