diff --git a/pgproto/src/postgres/attributes.c b/pgproto/src/postgres/attributes.c
index b982cdb30e4e1134c02a85945ed812fc162761b6..503c5933433ed3d0e70e90f3f67966cee8fd2bd0 100644
--- a/pgproto/src/postgres/attributes.c
+++ b/pgproto/src/postgres/attributes.c
@@ -209,7 +209,7 @@ parse_metadata(const char **data,
 {
 	uint32_t natts = mp_decode_array(data);
 	if (natts >= (uint16_t)-1) {
-		pg_debug("too many attributes: %"PRIu32, natts);
+		say_error("too many attributes: %"PRIu32, natts);
 		return -1;
 	}
 	row_desc->natts = (uint16_t)natts;
diff --git a/pgproto/src/postgres/auth.c b/pgproto/src/postgres/auth.c
index d9564757fce5a66e42d8b39b09b9bbdda3e1b692..09cfef4a4b271901c9636e95fd7910749a042ce1 100644
--- a/pgproto/src/postgres/auth.c
+++ b/pgproto/src/postgres/auth.c
@@ -71,7 +71,7 @@ pg_send_auth_request(struct pg_port *port, enum PG_AUTH_REQUEST_CODE code,
 	if (code != AUTH_REQ_OK)
 		pg_flush(port);
 
-	pg_debug("sent auth request(%d) to user \'%s\'", code, port->user);
+	say_debug("sent auth request(%d) to user \'%s\'", code, port->user);
 }
 
 /** AuthResponse packet format. */
@@ -122,7 +122,7 @@ pg_recv_auth_response(struct pg_port *port, struct auth_response *packet)
 	if (packet->data == NULL)
 		return -1;
 
-	pg_debug("received auth response from user \'%s\'", port->user);
+	say_debug("received auth response from user \'%s\'", port->user);
 	pg_read_gc(port);
 	return 0;
 }
@@ -206,14 +206,14 @@ pg_authenticate(struct pg_port *port)
 	if (strcmp(auth_method, "md5") == 0) {
 		rc = pg_authenticate_md5(port);
 	} else {
-		pg_debug("unknown auth method %s", auth_method);
+		say_debug("unknown auth method %s", auth_method);
 		goto auth_failed;
 	}
 	if (rc != 0)
 		goto auth_failed;
 
 	pg_send_auth_ok(port);
-	pg_info("authenticated");
+	say_info("authenticated");
 	return 0;
 
 auth_failed:
diff --git a/pgproto/src/postgres/postgres.c b/pgproto/src/postgres/postgres.c
index f6614e48513e81ad76d93acaca692d21352e9244..220c87fff4959234b0a6fd39530d0eacee1e2f88 100644
--- a/pgproto/src/postgres/postgres.c
+++ b/pgproto/src/postgres/postgres.c
@@ -163,7 +163,7 @@ process_simple_query_impl(struct pg_port *port)
 		return -1;
 	}
 
-	pg_debug("processing query \'%s\'", query);
+	say_debug("processing query \'%s\'", query);
 	const char *response = dispatch_query_wrapped(query, query_len);
 
 	if (response == NULL) {
@@ -204,8 +204,7 @@ start_query_cycle(struct pg_port *port)
 		uint8_t msg_type;
 		pg_read_uint8(port, &msg_type);
 		if (port->status == PG_EOF) {
-			pg_error(NULL, ERRCODE_CONNECTION_DOES_NOT_EXIST,
-				 "unexpected EOF on client connection");
+			say_error("unexpected EOF on client connection");
 			return -1;
 		} else if (port->status == PG_ERR) {
 			/* Error has already been logged. */
@@ -218,7 +217,7 @@ start_query_cycle(struct pg_port *port)
 				return -1;
 			break;
 		case 'X': /* Terminate */
-			pg_debug("got Terminate message");
+			say_debug("got Terminate message");
 			return 0;
 		default:
 			pg_error(port, ERRCODE_FEATURE_NOT_SUPPORTED,
@@ -268,7 +267,7 @@ cleanup:
 	if (fiber_is_cancelled())
 		pg_notice(&port, "shutting down");
 
-	pg_info("disconnected");
+	say_info("disconnected");
 	pg_port_close(&port);
 	return ret;
 }
diff --git a/pgproto/src/postgres/report.h b/pgproto/src/postgres/report.h
index d8f8a0bce649eb36cdf37d898c4a38b13dd8ae2e..97d8d540b42e839294753f503c05cd976bdd3ff2 100644
--- a/pgproto/src/postgres/report.h
+++ b/pgproto/src/postgres/report.h
@@ -25,18 +25,6 @@ void
 send_message_to_frontend(int level, struct pg_port *port,
 			 const char *sql_error_code, const char *fmt, ...);
 
-/** Log a debug message. Message is not sent to the client. */
-#define pg_debug(...) \
-	say_debug(__VA_ARGS__)
-
-/** Log an info message. Message is not sent to the client. */
-#define pg_info(...) \
-	say_info(__VA_ARGS__)
-
-/** Log a warning message.  Message is not sent to the client. */
-#define pg_warning(format, ...) \
-	say_warning(format, __VA_ARGS__)
-
 /** Log an error message.  Message is sent to the client if port != NULL. */
 #define pg_error(port, sql_code, ...) do {	\
 	say_error(__VA_ARGS__);	\
diff --git a/pgproto/src/postgres/startup.c b/pgproto/src/postgres/startup.c
index a50e2e1bb7d59e051103ec629df5072af4ebe8d0..3e9eaf81ae8ef9648ff70267cc81bdf027898e5c 100644
--- a/pgproto/src/postgres/startup.c
+++ b/pgproto/src/postgres/startup.c
@@ -244,6 +244,6 @@ pg_process_startup_message(struct pg_port *port)
 		return -1;
 	}
 
-	pg_debug("processed startup message for user \"%s\"", port->user);
+	say_debug("processed startup message for user \"%s\"", port->user);
 	return 0;
 }