[Python-checkins] r73996 - in python/branches/py3k: Lib/logging/__init__.py Misc/NEWS

vinay.sajip python-checkins at python.org
Mon Jul 13 13:28:30 CEST 2009


Author: vinay.sajip
Date: Mon Jul 13 13:28:25 2009
New Revision: 73996
Log:
Issue #6314: logging: Extra checks on the "level" argument.
Modified:
 python/branches/py3k/Lib/logging/__init__.py
 python/branches/py3k/Misc/NEWS
Modified: python/branches/py3k/Lib/logging/__init__.py
==============================================================================
--- python/branches/py3k/Lib/logging/__init__.py	(original)
+++ python/branches/py3k/Lib/logging/__init__.py	Mon Jul 13 13:28:25 2009
@@ -176,6 +176,17 @@
 finally:
 _releaseLock()
 
+def _checkLevel(level):
+ if isinstance(level, int):
+ rv = level
+ elif str(level) == level:
+ if level not in _levelNames:
+ raise ValueError("Unknown level: %r" % level)
+ rv = _levelNames[level]
+ else:
+ raise TypeError("Level not an integer or a valid string: %r" % level)
+ return rv
+
 #---------------------------------------------------------------------------
 # Thread-related stuff
 #---------------------------------------------------------------------------
@@ -593,7 +604,7 @@
 and the filter list to empty.
 """
 Filterer.__init__(self)
- self.level = level
+ self.level = _checkLevel(level)
 self.formatter = None
 #get the module data lock, as we're updating a shared structure.
 _acquireLock()
@@ -631,7 +642,7 @@
 """
 Set the logging level of this handler.
 """
- self.level = level
+ self.level = _checkLevel(level)
 
 def format(self, record):
 """
@@ -1009,7 +1020,7 @@
 """
 Filterer.__init__(self)
 self.name = name
- self.level = level
+ self.level = _checkLevel(level)
 self.parent = None
 self.propagate = 1
 self.handlers = []
@@ -1019,7 +1030,7 @@
 """
 Set the logging level of this logger.
 """
- self.level = level
+ self.level = _checkLevel(level)
 
 def debug(self, msg, *args, **kwargs):
 """
@@ -1396,10 +1407,6 @@
 root.addHandler(hdlr)
 level = kwargs.get("level")
 if level is not None:
- if str(level) == level: # If a string was passed, do more checks
- if level not in _levelNames:
- raise ValueError("Unknown level: %r" % level)
- level = _levelNames[level]
 root.setLevel(level)
 
 #---------------------------------------------------------------------------
Modified: python/branches/py3k/Misc/NEWS
==============================================================================
--- python/branches/py3k/Misc/NEWS	(original)
+++ python/branches/py3k/Misc/NEWS	Mon Jul 13 13:28:25 2009
@@ -90,8 +90,7 @@
 Library
 -------
 
-- Issue #6314: logging.basicConfig() performs extra checks on the "level"
- argument.
+- Issue #6314: logging: performs extra checks on the "level" argument.
 
 - Issue #6274: Fixed possible file descriptors leak in subprocess.py
 
@@ -133,7 +132,7 @@
 -------
 
 - Issue #6438: Fixed distutils.cygwinccompiler.get_versions : the regular
- expression string pattern was trying to match against a bytes returned by 
+ expression string pattern was trying to match against a bytes returned by
 Popen. Tested under win32 to build the py-postgresql project.
 
 - Issue #6258: Support AMD64 in bdist_msi.
@@ -892,22 +891,22 @@
 Library
 -------
 
-- Issue #6459: distutils.command.build_ext.get_export_symbols now uses the 
- "PyInit" prefix, rather than "init". 
+- Issue #6459: distutils.command.build_ext.get_export_symbols now uses the
+ "PyInit" prefix, rather than "init".
 
-- Issue #6455: Fixed test_build_ext under win32. 
+- Issue #6455: Fixed test_build_ext under win32.
 
-- Issue #6377: Enabled the compiler option, and deprecate its usage as an 
+- Issue #6377: Enabled the compiler option, and deprecate its usage as an
 attribute.
 
 - Issue #6413: Fixed the log level in distutils.dist for announce.
 
 - Issue #6403: Fixed package path usage in build_ext.
 
-- Issue #6365: Distutils build_ext inplace mode was copying the compiled 
+- Issue #6365: Distutils build_ext inplace mode was copying the compiled
 extension in a subdirectory if the extension name had dots.
 
-- Issue #6164: Added an AIX specific linker argument in Distutils 
+- Issue #6164: Added an AIX specific linker argument in Distutils
 unixcompiler. Original patch by Sridhar Ratnakumar.
 
 - Issue #6286: Now Distutils upload command is based on urllib2 instead of


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /