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().