diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml index 8e2a2c5..5f83adf 100644 --- a/doc/src/sgml/config.sgml +++ b/doc/src/sgml/config.sgml @@ -3380,6 +3380,21 @@ local0.* /var/log/postgresql + + log_replication_connections (boolean) + + log_replication_connections configuration parameter + + + + Causes each successful replication connection to the server to be + logged. This parameter can only be set in the + postgresql.conf file or on the server command line. + The default is on. + + + + log_disconnections (boolean) diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 179048f..a128e21 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -199,6 +199,7 @@ int AuthenticationTimeout = 60; bool log_hostname; /* for ps display and logging */ bool Log_connections = false; +bool Log_replication_connections = false; bool Db_user_namespace = false; bool enable_bonjour = false; diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c index b227e6c..3c941b1 100644 --- a/src/backend/tcop/postgres.c +++ b/src/backend/tcop/postgres.c @@ -3137,6 +3137,7 @@ set_debug_options(int debug_flag, GucContext context, GucSource source) if (debug_flag >= 1 && context == PGC_POSTMASTER) { SetConfigOption("log_connections", "true", context, source); + SetConfigOption("log_replication_connections", "true", context, source); SetConfigOption("log_disconnections", "true", context, source); } if (debug_flag >= 2) diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 76890f2..d09633e 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -219,22 +219,25 @@ PerformAuthentication(Port *port) elog(FATAL, "could not disable timer for authorization timeout"); /* - * Log connection for streaming replication even if Log_connections - * disabled. + * Log connection for streaming replication if Log_replication_connections + * is enabled. */ if (am_walsender) { - if (port->remote_port[0]) - ereport(LOG, - (errmsg("replication connection authorized: user=%s host=%s port=%s", - port->user_name, - port->remote_host, - port->remote_port))); - else - ereport(LOG, - (errmsg("replication connection authorized: user=%s host=%s", - port->user_name, - port->remote_host))); + if (Log_replication_connections) + { + if (port->remote_port[0]) + ereport(LOG, + (errmsg("replication connection authorized: user=%s host=%s port=%s", + port->user_name, + port->remote_host, + port->remote_port))); + else + ereport(LOG, + (errmsg("replication connection authorized: user=%s host=%s", + port->user_name, + port->remote_host))); + } } else if (Log_connections) ereport(LOG, diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index e4dea31..94c58a4 100644 --- a/src/backend/utils/misc/guc.c +++ b/src/backend/utils/misc/guc.c @@ -803,6 +803,14 @@ static struct config_bool ConfigureNamesBool[] = false, NULL, NULL }, { + {"log_replication_connections", PGC_BACKEND, LOGGING_WHAT, + gettext_noop("Logs each successful replication connection."), + NULL + }, + &Log_replication_connections, + true, NULL, NULL + }, + { {"log_disconnections", PGC_BACKEND, LOGGING_WHAT, gettext_noop("Logs end of a session, including duration."), NULL diff --git a/src/backend/utils/misc/postgresql.conf.sample b/src/backend/utils/misc/postgresql.conf.sample index f436b83..d9c8b97 100644 --- a/src/backend/utils/misc/postgresql.conf.sample +++ b/src/backend/utils/misc/postgresql.conf.sample @@ -353,6 +353,7 @@ #debug_pretty_print = on #log_checkpoints = off #log_connections = off +#log_replication_connections = on #log_disconnections = off #log_duration = off #log_error_verbosity = default # terse, default, or verbose messages diff --git a/src/include/postmaster/postmaster.h b/src/include/postmaster/postmaster.h index 25cc84a..e2f5ba3 100644 --- a/src/include/postmaster/postmaster.h +++ b/src/include/postmaster/postmaster.h @@ -26,6 +26,7 @@ extern bool ClientAuthInProgress; extern int PreAuthDelay; extern int AuthenticationTimeout; extern bool Log_connections; +extern bool Log_replication_connections; extern bool log_hostname; extern bool enable_bonjour; extern char *bonjour_name;