DB Internals AtlasPostgreSQL 18.6 Home About

Parameter · Reporting and Logging / What to Log

log_timezone

Sets the time zone to use in log messages.

  • Default: GMT
  • Type: string
  • Applies: Reload

In plain words

The time zone for the timestamps written in the log, and for the date in log file names. It is separate from the TimeZone your sessions see. Many teams use UTC so logs from servers in different regions line up.

For DBAs and operators

The built-in default is GMT, but initdb writes the operating system's zone into postgresql.conf, so most clusters show their local zone. The zone abbreviation is printed after the timestamp (%m → 2026-10-22 15:37:15.180 UTC). It affects %t, %m, %s in log_line_prefix, csvlog/jsonlog timestamps, and the strftime escapes in log_filename (so midnight rotation follows it).

%n prints an epoch timestamp, which is time-zone free. Changing it with a reload takes effect in each process the next time it reads the configuration; for a few lines around a reload you may see mixed zones.

Support tip: when correlating with application logs or a monitoring graph, check this first; an hour or more offset between "the spike" and "the log lines" is usually just a time zone mismatch, sometimes plus a DST change. Setting it to UTC everywhere avoids both.

How to change it

Change in postgresql.conf or ALTER SYSTEM, then run SELECT pg_reload_conf().

See it in context

Logger (logging collector)

Related parameters

log_line_prefix log_filename TimeZone

All Reporting and Logging parameters