Index: binary-improvements/MapRendering/Web/SSE/EventBase.cs
===================================================================
--- binary-improvements/MapRendering/Web/SSE/EventBase.cs	(revision 369)
+++ binary-improvements/MapRendering/Web/SSE/EventBase.cs	(revision 372)
@@ -55,12 +55,15 @@
 				stringBuilder.Append ("data: ");
 				
-				if (data is string dataString) {
-					stringBuilder.AppendLine (dataString);
-				} else if (data is JSONNode dataJson) {
-					dataJson.ToString (stringBuilder);
-					stringBuilder.AppendLine ("");
-				} else {
-					Log.Error ($"SSE ({Name}): Data is neither string nor JSON.");
-					continue;
+				switch (data) {
+					case string dataString:
+						stringBuilder.AppendLine (dataString);
+						break;
+					case JSONNode dataJson:
+						dataJson.ToString (stringBuilder);
+						stringBuilder.AppendLine ("");
+						break;
+					default:
+						logError ("Data is neither string nor JSON.", false);
+						continue;
 				}
 				
@@ -76,5 +79,5 @@
 						bytesToSend = Encoding.UTF8.GetBytes (output, 0, output.Length, buf, 0);
 					} catch (ArgumentException e) {
-						Log.Error ($"SSE ({Name}): Exception while encoding data for output, most likely exceeding buffer size:");
+						logError ("Exception while encoding data for output, most likely exceeding buffer size:", false);
 						Log.Exception (e);
 						return;
@@ -95,6 +98,5 @@
 							totalClosed++;
 
-							Log.Out (
-								$"SSE ({Name}): Can not write to endpoint, closing. (Left open: {currentlyOpen}, total opened: {totalOpened}, closed: {totalClosed}");
+							logError ("Can not write to endpoint, closing", true);
 							openStreams.RemoveAt (i);
 							resp.Close ();
@@ -107,10 +109,9 @@
 
 						if (e.InnerException is SocketException se) {
-							if (se.SocketErrorCode != SocketError.ConnectionAborted) {
-								Log.Error ($"SSE ({Name}): SocketError ({se.SocketErrorCode}) while trying to write: (Left open: {currentlyOpen}, total opened: {totalOpened}, closed: {totalClosed}");
+							if (se.SocketErrorCode != SocketError.ConnectionAborted && se.SocketErrorCode != SocketError.Shutdown) {
+								logError ($"SocketError ({se.SocketErrorCode}) while trying to write", true);
 							}
 						} else {
-							Log.Error (
-								$"SSE ({Name}): IOException while trying to write: (Left open: {currentlyOpen}, total opened: {totalOpened}, closed: {totalClosed}");
+							logError ("IOException while trying to write:", true);
 							Log.Exception (e);
 						}
@@ -122,6 +123,5 @@
 
 						openStreams.RemoveAt (i);
-						Log.Error (
-							$"SSE ({Name}): Exception while trying to write: (Left open: {currentlyOpen}, total opened: {totalOpened}, closed: {totalClosed}");
+						logError ("Exception while trying to write:", true);
 						Log.Exception (e);
 						resp.Close ();
@@ -131,4 +131,10 @@
 		}
 
+		protected void logError (string _message, bool _printConnections) {
+			Log.Error (_printConnections
+				? $"SSE ({Name}): {_message} (Left open: {currentlyOpen}, total opened: {totalOpened}, closed: {totalClosed})"
+				: $"SSE ({Name}): {_message}");
+		}
+
 		public virtual int DefaultPermissionLevel () {
 			return 0;
