*** a/doc/src/sgml/config.sgml
--- b/doc/src/sgml/config.sgml
***************
*** 2399,2412 **** local0.*    /var/log/postgresql
          file names.  (Note that if there are
          any time-zone-dependent <literal>%</literal>-escapes, the computation
          is done in the zone specified by <xref linkend="guc-log-timezone">.)
!         If no <literal>%</literal>-escapes are present,
!         <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
!         directly, so platform-specific (nonstandard) extensions do not work.
         </para>
         <para>
          If CSV-format output is enabled in <varname>log_destination</>,
--- 2399,2412 ----
          file names.  (Note that if there are
          any time-zone-dependent <literal>%</literal>-escapes, the computation
          is done in the zone specified by <xref linkend="guc-log-timezone">.)
!        </para>
!        <para>
!         (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; however, this is no longer the
!         case.  If you specify a file name without escapes, you should plan to
!         use a log rotation utility to avoid eventually filling the entire
!         disk.)
         </para>
         <para>
          If CSV-format output is enabled in <varname>log_destination</>,
*** a/src/backend/postmaster/syslogger.c
--- b/src/backend/postmaster/syslogger.c
***************
*** 1193,1210 **** logfile_getname(pg_time_t timestamp, char *suffix)
  
  	len = strlen(filename);
  
! 	if (strchr(Log_filename, '%'))
! 	{
! 		/* treat it as a strftime pattern */
! 		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)
  	{
--- 1193,1201 ----
  
  	len = strlen(filename);
  
! 	/* treat it as a strftime pattern */
! 	pg_strftime(filename + len, MAXPGPATH - len, Log_filename,
! 		pg_localtime(&timestamp, log_timezone));
  
  	if (suffix != NULL)
  	{
