Re: logfile rotation
| От | Andreas Pflug |
|---|---|
| Тема | Re: logfile rotation |
| Дата | |
| Msg-id | 40D4030F.2030407@pse-consulting.de обсуждение исходный текст |
| Ответ на | Re: logfile rotation (Bruce Momjian <pgman@candle.pha.pa.us>) |
| Список | pgsql-hackers |
Bruce Momjian wrote: >Actually, this is the current state of this issue. > > Right, please comment on this. To recall, it uses shared memory for a "switch to next logfile name" flag, which can't cause harm in case of shmem corruption, and a postmaster opened filehandle (kept open) to a dummy file containing the actual file name (pseudo code below). Regards, Andreas >--------------------------------------------------------------------------- > >Andreas Pflug wrote: > > >>Tom Lane wrote: >> >> >> >>>Andreas Pflug <pgadmin@pse-consulting.de> writes: >>> >>> >>> >>> >>>>>Answering my own question, the distribution of the current logfile >>>>>name could be done trough a file handle. >>>>> >>>>> >>>>> >>>>> >>> >>> >>> >>> >>>>would you mind commenting on my suggestion so I can continue on that topic? >>>> >>>> >>>> >>>> >>>There is no portable way to redistribute a file handle. >>> >>> >>> >>> >>Seems I didn't make clear enough what I mean. >> >>I'd fopen a file handle in the postmaster, and all subsequent processes >>will inherit that handle just as they do for stderr; no redistribution >>required. >>The log filename is written to that file when pg_logfile_rotate is called: >>fseek(fh, 0, SEEK_SET); >>fprintf(fh, "%s", newlogfilname); >>fflush(); >> >>and all subprocesses may retrieve the filename when required by >> >>char buf[MAXPGPATH]; >>fseek(fh, 0, SEEK_SET); >>fread(buf, 1, MAXPGPATH, fh); >>buf[MAXPGPATH-1]=0; // prevent buffer overflow >>logfile=fopen(buf, "a+"); >> >>Regards, >>Andreas >> >> >> >> > > >
В списке pgsql-hackers по дате отправления: