Hi,

it has bugged me for a long time that there's no clear "PostgreSQL is
starting" message in the server log file. I'd like to change that for
two reasons:

* when reading a long log file, it's not entirely clear where a new
  server startup begins.

  It was worse in the past (first message was "database system was
  shut down at..." which rather looks like a shutdown message to
  newbie users), now it's "listening on IPv6..." but that message
  might possibly become DEBUG1, or listen_addresses might become
  changeable at run-time

* while upgrading servers, it's useful to know which server version
  was actually started if there are several startup attempts

The change would be to log "Starting PG_VERSION_STR" as early as
possible.

A startup looks like this:

2018-11-21 15:19:47.259 CET [24453] LOG:  listening on IPv6 address "::1", port 
5431
2018-11-21 15:19:47.259 CET [24453] LOG:  listening on IPv4 address 
"127.0.0.1", port 5431
2018-11-21 15:19:47.315 CET [24453] LOG:  listening on Unix socket 
"/tmp/.s.PGSQL.5431"
2018-11-21 15:19:47.394 CET [24453] LOG:  starting PostgreSQL 12devel on 
x86_64-pc-linux-gnu, compiled by gcc (Debian 8.2.0-9) 8.2.0, 64-bit
2018-11-21 15:19:47.426 CET [24454] LOG:  database system was shut down at 
2018-11-21 15:15:35 CET
2018-11-21 15:19:47.460 CET [24453] LOG:  database system is ready to accept 
connections

(I'd rather put the start message before the listening messages, but I
think the startup message should be logged via logging_collector, and
listening is logged before the log file is opened.)

Christoph
-- 
Senior Berater, Tel.: +49 2166 9901 187
credativ GmbH, HRB Mönchengladbach 12080, USt-ID-Nummer: DE204566209
Trompeterallee 108, 41189 Mönchengladbach
Geschäftsführung: Dr. Michael Meskes, Jörg Folz, Sascha Heuer
Unser Umgang mit personenbezogenen Daten unterliegt
folgenden Bestimmungen: https://www.credativ.de/datenschutz
>From 49f786a26110ca55d12c47f75e8662047e78c5c8 Mon Sep 17 00:00:00 2001
From: Christoph Berg <christoph.b...@credativ.de>
Date: Wed, 21 Nov 2018 15:43:34 +0100
Subject: [PATCH] Log PostgreSQL version number on startup

Logging the PostgreSQL version on startup is useful for two reasons:
There is a clear marker in the log file that a new postmaster is
beginning, and it's useful for tracking the server version across
startup while upgrading.
---
 src/backend/postmaster/postmaster.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c
index a33a131182..e0abfd686a 100644
--- a/src/backend/postmaster/postmaster.c
+++ b/src/backend/postmaster/postmaster.c
@@ -1306,6 +1306,10 @@ PostmasterMain(int argc, char *argv[])
 
 	whereToSendOutput = DestNone;
 
+	/* Report server startup in log */
+	ereport(LOG,
+			(errmsg("starting %s", PG_VERSION_STR)));
+
 	/*
 	 * Initialize stats collection subsystem (this does NOT start the
 	 * collector process!)
-- 
2.19.1

Reply via email to