Don't append epoch to log_filename if no format specifier is given.

Robert Haas
This commit is contained in:
Peter Eisentraut 2009-02-24 12:09:09 +00:00
parent 7babccb915
commit 7380b6384b
2 changed files with 16 additions and 21 deletions

View File

@ -1,4 +1,4 @@
<!-- $PostgreSQL: pgsql/doc/src/sgml/config.sgml,v 1.209 2009/02/22 23:50:30 tgl Exp $ --> <!-- $PostgreSQL: pgsql/doc/src/sgml/config.sgml,v 1.210 2009/02/24 12:09:08 petere Exp $ -->
<chapter Id="runtime-config"> <chapter Id="runtime-config">
<title>Server Configuration</title> <title>Server Configuration</title>
@ -2398,16 +2398,20 @@ local0.* /var/log/postgresql
so <literal>%</literal>-escapes can be used to specify time-varying so <literal>%</literal>-escapes can be used to specify time-varying
file names. (Note that if there are file names. (Note that if there are
any time-zone-dependent <literal>%</literal>-escapes, the computation any time-zone-dependent <literal>%</literal>-escapes, the computation
is done in the zone specified by <xref linkend="guc-log-timezone">.) is done in the zone specified
If no <literal>%</literal>-escapes are present, by <xref linkend="guc-log-timezone">.)
<productname>PostgreSQL</productname> will append the epoch of the new
log file's creation time. For example, if
<varname>log_filename</varname> were <literal>server_log</literal>,
then the chosen file name would be <literal>server_log.1093827753</>
for a log starting at Sun Aug 29 19:02:33 2004 MST.
Note that the system's <systemitem>strftime</systemitem> is not used Note that the system's <systemitem>strftime</systemitem> is not used
directly, so platform-specific (nonstandard) extensions do not work. directly, so platform-specific (nonstandard) extensions do not work.
</para> </para>
<para>
If you specify a file name without escapes, you should plan to
use a log rotation utility to avoid eventually filling the
entire disk. In releases prior to 8.4, if
no <literal>%</literal> escapes were
present, <productname>PostgreSQL</productname> would append
the epoch of the new log file's creation time, but this is no
longer the case.
</para>
<para> <para>
If CSV-format output is enabled in <varname>log_destination</>, If CSV-format output is enabled in <varname>log_destination</>,
<literal>.csv</> will be appended to the timestamped <literal>.csv</> will be appended to the timestamped

View File

@ -18,7 +18,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/postmaster/syslogger.c,v 1.48 2009/02/03 00:59:26 tgl Exp $ * $PostgreSQL: pgsql/src/backend/postmaster/syslogger.c,v 1.49 2009/02/24 12:09:09 petere Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
@ -1191,18 +1191,9 @@ logfile_getname(pg_time_t timestamp, char *suffix)
len = strlen(filename); len = strlen(filename);
if (strchr(Log_filename, '%')) /* treat it as a strftime pattern */
{ pg_strftime(filename + len, MAXPGPATH - len, Log_filename,
/* treat it as a strftime pattern */ pg_localtime(&timestamp, log_timezone));
pg_strftime(filename + len, MAXPGPATH - len, Log_filename,
pg_localtime(&timestamp, log_timezone));
}
else
{
/* no strftime escapes, so append timestamp to new filename */
snprintf(filename + len, MAXPGPATH - len, "%s.%lu",
Log_filename, (unsigned long) timestamp);
}
if (suffix != NULL) if (suffix != NULL)
{ {