#endif
    }
 
+   if (Log_connections && status == STATUS_OK &&
+       !MyClientConnectionInfo.authn_id)
+   {
+       /*
+        * Normally, if log_connections is set, the call to set_authn_id()
+        * will log the connection.  However, if that function is never
+        * called, perhaps because the trust method is in use, then we handle
+        * the logging here instead.
+        */
+       ereport(LOG,
+               errmsg("connection authenticated: user=\"%s\" method=%s "
+                      "(%s:%d)",
+                      port->user_name, hba_authname(port->hba->auth_method),
+                      port->hba->sourcefile, port->hba->linenumber));
+   }
+
    if (ClientAuthentication_hook)
        (*ClientAuthentication_hook) (port, status);
 
 
 # Create a database to test regular expression.
 $node->safe_psql('postgres', "CREATE database regex_testdb;");
 
-# For "trust" method, all users should be able to connect. These users are not
-# considered to be authenticated.
+# For "trust" method, all users should be able to connect.
 reset_pg_hba($node, 'all', 'all', 'trust');
 test_conn($node, 'user=scram_role', 'trust', 0,
-   log_unlike => [qr/connection authenticated:/]);
+   log_like =>
+     [qr/connection authenticated: user="scram_role" method=trust/]);
 test_conn($node, 'user=md5_role', 'trust', 0,
-   log_unlike => [qr/connection authenticated:/]);
+   log_like => [qr/connection authenticated: user="md5_role" method=trust/]);
 
 # SYSTEM_USER is null when not authenticated.
 $res = $node->safe_psql('postgres', "SELECT SYSTEM_USER IS NULL;");
 
    "$common_connstr user=ssltestuser sslcert=ssl/client.crt "
      . sslkey('client.key'),
    "auth_option clientcert=verify-full succeeds with matching username and Common Name",
-   # verify-full does not provide authentication
-   log_unlike => [qr/connection authenticated:/],);
+   log_like =>
+     [qr/connection authenticated: user="ssltestuser" method=trust/],);
 
 $node->connect_fails(
    "$common_connstr user=anotheruser sslcert=ssl/client.crt "
    "$common_connstr user=yetanotheruser sslcert=ssl/client.crt "
      . sslkey('client.key'),
    "auth_option clientcert=verify-ca succeeds with mismatching username and Common Name",
-   # verify-full does not provide authentication
-   log_unlike => [qr/connection authenticated:/],);
+   log_like =>
+     [qr/connection authenticated: user="yetanotheruser" method=trust/],);
 
 # intermediate client_ca.crt is provided by client, and isn't in server's ssl_ca_file
 switch_server_cert($node, certfile => 'server-cn-only', cafile => 'root_ca');