Closes #13356. Thanks to Florent Xicluna for the patch.
diff --git a/Lib/logging/__init__.py b/Lib/logging/__init__.py
index b94fbbc..f6af605 100644
--- a/Lib/logging/__init__.py
+++ b/Lib/logging/__init__.py
@@ -1007,6 +1007,8 @@
         placeholder to now point to the logger.
         """
         rv = None
+        if isinstance(name, unicode):
+            name = name.encode('utf-8')
         _acquireLock()
         try:
             if name in self.loggerDict:
diff --git a/Lib/logging/config.py b/Lib/logging/config.py
index 5af91d4..8e01a56 100644
--- a/Lib/logging/config.py
+++ b/Lib/logging/config.py
@@ -211,7 +211,7 @@
     #avoid disabling child loggers of explicitly
     #named loggers. With a sorted list it is easier
     #to find the child loggers.
-    existing.sort(key=_encoded)
+    existing.sort()
     #We'll keep the list of existing loggers
     #which are children of named loggers here...
     child_loggers = []
@@ -589,13 +589,14 @@
                 #avoid disabling child loggers of explicitly
                 #named loggers. With a sorted list it is easier
                 #to find the child loggers.
-                existing.sort(key=_encoded)
+                existing.sort()
                 #We'll keep the list of existing loggers
                 #which are children of named loggers here...
                 child_loggers = []
                 #now set up the new ones...
                 loggers = config.get('loggers', EMPTY_DICT)
                 for name in loggers:
+                    name = _encoded(name)
                     if name in existing:
                         i = existing.index(name)
                         prefixed = name + "."