Issue #12151: Test now ignores datagram socket errors after server is closed.
diff --git a/Lib/test/test_logging.py b/Lib/test/test_logging.py
index 8166b33..e4fc266 100644
--- a/Lib/test/test_logging.py
+++ b/Lib/test/test_logging.py
@@ -888,7 +888,8 @@
                             before calling :meth:`start`, so that the server will
                             set up the socket and listen on it.
         """
-        def __init__(self, addr, handler, poll_interval=0.5, bind_and_activate=True):
+        def __init__(self, addr, handler, poll_interval=0.5,
+                     bind_and_activate=True):
             class DelegatingUDPRequestHandler(DatagramRequestHandler):
 
                 def handle(self):
@@ -896,15 +897,15 @@
 
                 def finish(self):
                     data = self.wfile.getvalue()
-                    try:
-                        super(DelegatingUDPRequestHandler, self).finish()
-                    except socket.error:
-                        msg = ('Error during finish, while sending %r, '
-                               'closed = %s')
-                        print(msg % (data, self.server._closed), file=sys.stderr)
-                        raise
+                    if data:
+                        try:
+                            super(DelegatingUDPRequestHandler, self).finish()
+                        except socket.error:
+                            if not self.server._closed:
+                                raise
 
-            ThreadingUDPServer.__init__(self, addr, DelegatingUDPRequestHandler,
+            ThreadingUDPServer.__init__(self, addr,
+                                        DelegatingUDPRequestHandler,
                                         bind_and_activate)
             ControlMixin.__init__(self, handler, poll_interval)
             self._closed = False