diff --git a/Lib/logging/__init__.py b/Lib/logging/__init__.py
index f932110..5072019 100644
--- a/Lib/logging/__init__.py
+++ b/Lib/logging/__init__.py
@@ -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)
 
 #---------------------------------------------------------------------------
diff --git a/Misc/NEWS b/Misc/NEWS
index b2ce671..f4670e6 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -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
