diff --git a/lib/extension-deflate-frame.c b/lib/extension-deflate-frame.c
index f95f9bc..541131b 100644
--- a/lib/extension-deflate-frame.c
+++ b/lib/extension-deflate-frame.c
@@ -36,7 +36,7 @@
 		conn->zs_in.opaque = conn->zs_out.opaque = Z_NULL;
 		n = inflateInit2(&conn->zs_in, -LWS_ZLIB_WINDOW_BITS);
 		if (n != Z_OK) {
-			lwsl_ext("deflateInit returned %d", n);
+			lwsl_ext("deflateInit returned %d\n", n);
 			return 1;
 		}
 		n = deflateInit2(&conn->zs_out,
@@ -47,7 +47,7 @@
 				 -LWS_ZLIB_WINDOW_BITS, LWS_ZLIB_MEMLEVEL,
 				 Z_DEFAULT_STRATEGY);
 		if (n != Z_OK) {
-			lwsl_ext("deflateInit2 returned %d", n);
+			lwsl_ext("deflateInit2 returned %d\n", n);
 			return 1;
 		}
 		conn->buf_pre_used = 0;
@@ -227,7 +227,7 @@
 				 * screwed.. close the connection... we will get a
 				 * destroy callback to take care of closing nicely
 				 */
-				lwsl_ext("zlib error deflate");
+				lwsl_ext("zlib error deflate\n");
 
 				return -1;
 			}
diff --git a/lib/handshake.c b/lib/handshake.c
index 98eec31..12c2de7 100644
--- a/lib/handshake.c
+++ b/lib/handshake.c
@@ -181,7 +181,7 @@
 	n = libwebsocket_write(wsi, (unsigned char *)response,
 					  p - response, LWS_WRITE_HTTP);
 	if (n < 0) {
-		lwsl_debug("ERROR writing to socket");
+		lwsl_debug("handshake_00: ERROR writing to socket\n");
 		goto bail;
 	}
 
@@ -431,7 +431,7 @@
 					wsi->count_active_extensions], NULL, 0);
 
 				wsi->count_active_extensions++;
-				lwsl_parser("wsi->count_active_extensions <- %d",
+				lwsl_parser("wsi->count_active_extensions <- %d\n",
 						  wsi->count_active_extensions);
 
 				ext++;
@@ -482,7 +482,7 @@
 		n = libwebsocket_write(wsi, (unsigned char *)response,
 						  p - response, LWS_WRITE_HTTP);
 		if (n < 0) {
-			lwsl_debug("ERROR writing to socket");
+			lwsl_debug("handshake_0405: ERROR writing to socket\n");
 			goto bail;
 		}
 
diff --git a/lib/libwebsockets.c b/lib/libwebsockets.c
index 4cc70b4..7a2232e 100644
--- a/lib/libwebsockets.c
+++ b/lib/libwebsockets.c
@@ -2892,7 +2892,7 @@
 
 		sockfd = socket(AF_INET, SOCK_STREAM, 0);
 		if (sockfd < 0) {
-			lwsl_err("ERROR opening socket");
+			lwsl_err("ERROR opening socket\n");
 			return NULL;
 		}
 
@@ -2980,7 +2980,7 @@
 
 		fd = socket(AF_INET, SOCK_STREAM, 0);
 		if (fd < 0) {
-			lwsl_err("ERROR opening socket");
+			lwsl_err("ERROR opening socket\n");
 			return NULL;
 		}
 
diff --git a/lib/parsers.c b/lib/parsers.c
index 1baeb34..87d4f73 100644
--- a/lib/parsers.c
+++ b/lib/parsers.c
@@ -852,7 +852,7 @@
 				&eff_buf, 0);
 			if (m < 0) {
 				lwsl_ext(
-			          "Extension '%s' failed to handle payload!",
+			          "Extension '%s' failed to handle payload!\n",
 			        	      wsi->active_extensions[n]->name);
 				return -1;
 			}
@@ -868,7 +868,7 @@
 			                	    eff_buf.token,
 						    eff_buf.token_len);
 		    else
-			    lwsl_err("No callback on payload spill!");
+			    lwsl_err("No callback on payload spill!\n");
 		}
 
 		wsi->rx_user_buffer_head = 0;
@@ -1206,7 +1206,7 @@
 		buf[1] = 0;
 		n = libwebsocket_write(wsi, buf, 2, LWS_WRITE_HTTP);
 		if (n < 0) {
-			lwsl_warn("ERROR writing to socket");
+			lwsl_warn("LWS_RXPS_SEEN_76_FF: ERROR writing to socket\n");
 			return -1;
 		}
 		lwsl_parser("  v76 close ack sent, server closing skt\n");
@@ -1338,7 +1338,7 @@
 				&eff_buf, 0);
 			if (m < 0) {
 				lwsl_ext(
-					"Extension '%s' failed to handle payload!",
+					"Extension '%s' failed to handle payload!\n",
 						wsi->active_extensions[n]->name);
 				return -1;
 			}
diff --git a/test-server/test-server-extpoll.c b/test-server/test-server-extpoll.c
index 3289ba7..3914907 100644
--- a/test-server/test-server-extpoll.c
+++ b/test-server/test-server-extpoll.c
@@ -254,7 +254,7 @@
 		n = sprintf((char *)p, "%d", pss->number++);
 		n = libwebsocket_write(wsi, p, n, LWS_WRITE_TEXT);
 		if (n < 0) {
-			fprintf(stderr, "ERROR writing to socket");
+			fprintf(stderr, "ERROR %d writing to socket\n", n);
 			return 1;
 		}
 		break;
@@ -332,7 +332,7 @@
 								LWS_WRITE_TEXT);
 
 			if (n < 0) {
-				fprintf(stderr, "ERROR writing to socket");
+				fprintf(stderr, "ERROR %d writing to socket\n", n);
 				exit(1);
 			}
 
diff --git a/test-server/test-server.c b/test-server/test-server.c
index f66ea42..5bda5b1 100644
--- a/test-server/test-server.c
+++ b/test-server/test-server.c
@@ -205,7 +205,7 @@
 		n = sprintf((char *)p, "%d", pss->number++);
 		n = libwebsocket_write(wsi, p, n, LWS_WRITE_TEXT);
 		if (n < 0) {
-			fprintf(stderr, "ERROR writing to socket");
+			fprintf(stderr, "ERROR %d writing to socket\n", n);
 			return 1;
 		}
 		if (close_testing && pss->number == 50) {
@@ -288,7 +288,7 @@
 				   ringbuffer[pss->ringbuffer_tail].len,
 								LWS_WRITE_TEXT);
 			if (n < 0) {
-				fprintf(stderr, "ERROR writing to socket");
+				fprintf(stderr, "ERROR %d writing to socket\n", n);
 				exit(1);
 			}
 
