Bruce Momjian wrote:
OK, I talked to Tom about this patch and I understand the issues now.

I think the best solution will be to have the postmaster start a child
process that can read the guc variables and create a log file based on
it contents.  The child would be responsible to create a new log file
every X seconds as specified in the postgresql.conf file.


OK, next round.

Backends wishing to read the log file would call a function to list the
contents of a directory. We can do this by creating a generic backend
super-user-only function that can list the contents of any directory.

If logfiles are located using directory listings, this would mean we should have well-known filename patterns instead of the current template stuff. So only the serverlog directory name would be selectable, if that makes still sense (I'd opt to drop that).


Then you would use an API to read a specific file, similar to the log
reading functions you already have.  In fact, you could set up the API
so reading a directory would return a list of directory names so you
don't need a separate directory listing function.  (Does your API return
file contents as one big text string or as lines.  If you return it as
one big text string, the directory idea will not work and you will need
a separate function.)

We'd better have distinct functions. The current is for reading large chunks of data without interpretation of contents, and dir listing might need tweaking for win32.
Now I wonder if it's better to have generic superuser-only functions for list/read/write/delete (this would enable client-side editing of postgresql.conf), or tie the functions to logfiles only (in which case the logfile functions shouldn't use filenames but logfile timestamps).


I still believe the log process should write the current logfile filename to shared-mem (write-only), so backends can prevent deleting it.



So, we have:

        o   use pipe and dup to copy stdout and stderr to your
            postmaster child
        o   new guc variables to specify log destination and rotation times
        o   a server-side function to force a log rotate
        o   API to list a directory and show file contents

I'll start on the log process.

Regards,
Andreas



---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
   (send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])

Reply via email to