Re: pg_ctl patch to integrate apache's rotatelogs - Mailing list pgsql-patches
From | Bruce Momjian |
---|---|
Subject | Re: pg_ctl patch to integrate apache's rotatelogs |
Date | |
Msg-id | 200405142000.i4EK0qT11280@candle.pha.pa.us Whole thread Raw |
In response to | Re: pg_ctl patch to integrate apache's rotatelogs (Andrew Hammond <ahammond@ca.afilias.info>) |
Responses |
Re: pg_ctl patch to integrate apache's rotatelogs
|
List | pgsql-patches |
Andrew Hammond wrote: > ~From what I've seen, I have to disagree. The documentation says to "pipe > the stderr of the postmaster to some type of log rotation program." > which is pretty vague. It then includes an _incorrect_ example of how to > use logrotate (logrotate rotates existing log files, if you pipe output > into it, your postmaster will block). There are no explicit, working > examples of how to configure the various log rotation options. Ouch. How long has that documentation been wrong? We have pointed folks to that section of the docs tons of times, and no one mentioned that "logrotate" is really "rotatelogs", and that it is missing parameters? I have applied the following patch to document rotatelogs properly. Also, the pg_ctl man page should mention rotatelogs too, and the patch includes that. > The idea here is to make it as easy as possible to use rotatelogs. The > script doesn't even test for existance of rotatelogs unless you > explicitly try to use it. And then, if it can't find rotatelogs, it says > so explicitly. I think it's an extreemly low risk patch, This is a powerful argument. I think the big reason we have avoided rotatelogs integration is the desire not to favor a particular log rotate solution. However, we have syslog hooks, so maybe rotatelogs hooks are OK. Comments? -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073 Index: maintenance.sgml =================================================================== RCS file: /cvsroot/pgsql-server/doc/src/sgml/maintenance.sgml,v retrieving revision 1.33 diff -c -c -r1.33 maintenance.sgml *** maintenance.sgml 5 Apr 2004 03:02:03 -0000 1.33 --- maintenance.sgml 14 May 2004 19:57:46 -0000 *************** *** 461,467 **** you can send a <literal>SIGHUP</literal> signal to the <application>syslog</> daemon whenever you want to force it to start writing a new log file. If you want to automate log ! rotation, the <application>logrotate</application> program can be configured to work with log files from <application>syslog</application>. </para> --- 461,467 ---- you can send a <literal>SIGHUP</literal> signal to the <application>syslog</> daemon whenever you want to force it to start writing a new log file. If you want to automate log ! rotation, the <application>rotatelogs</application> program can be configured to work with log files from <application>syslog</application>. </para> *************** *** 484,495 **** pipe command: <programlisting> ! pg_ctl start | logrotate </programlisting> The <productname>PostgreSQL</> distribution doesn't include a suitable log rotation program, but there are many available on the ! Internet. For example, the <application>logrotate</application> tool included in the <productname>Apache</productname> distribution can be used with <productname>PostgreSQL</productname>. </para> --- 484,495 ---- pipe command: <programlisting> ! pg_ctl start | rotatelogs /var/log/pgsql_log 86400 </programlisting> The <productname>PostgreSQL</> distribution doesn't include a suitable log rotation program, but there are many available on the ! Internet. For example, the <application>rotatelogs</application> tool included in the <productname>Apache</productname> distribution can be used with <productname>PostgreSQL</productname>. </para> Index: ref/pg_ctl-ref.sgml =================================================================== RCS file: /cvsroot/pgsql-server/doc/src/sgml/ref/pg_ctl-ref.sgml,v retrieving revision 1.25 diff -c -c -r1.25 pg_ctl-ref.sgml *** ref/pg_ctl-ref.sgml 29 Nov 2003 19:51:39 -0000 1.25 --- ref/pg_ctl-ref.sgml 14 May 2004 19:57:46 -0000 *************** *** 87,99 **** server is started in the background, and standard input is attached to <filename>/dev/null</filename>. The standard output and standard error are either appended to a log file (if the <option>-l</option> ! option is used), or redirected to <application>pg_ctl</application>'s standard output (not standard error). If no log file is chosen, the standard output of <application>pg_ctl</application> should be redirected ! to a file or piped to another process, for example a log rotating program, ! otherwise <command>postmaster</command> will write its output to the controlling ! terminal (from the background) and will not leave the shell's ! process group. </para> <para> --- 87,99 ---- server is started in the background, and standard input is attached to <filename>/dev/null</filename>. The standard output and standard error are either appended to a log file (if the <option>-l</option> ! option is used), or redirected to <application>pg_ctl</application>'s standard output (not standard error). If no log file is chosen, the standard output of <application>pg_ctl</application> should be redirected ! to a file or piped to another process such as a log rotating program ! like <application>rotatelogs</>; otherwise the <command>postmaster</command> ! will write its output to the controlling terminal (from the background) ! and will not leave the shell's process group. </para> <para>
pgsql-patches by date: