Обсуждение: Problem getting sql statement logging to work
Hi
I am trying to log my sql statements to the syslog file.
I have the following entries in my postgresql.conf file yet it doesn't seem
to log anything.
The OS is Solaris 9
I am looking at /var/adm/messages and can't see anything from Postgres and I
have run lots of sql.
I saw one article on the web which suggested setting debug_print_query = on.
Is this an alternative way of setting logging ?
Thanks for any help.
David Klugmann
# - Syslog -
syslog = 2 # range 0-2; 0=stdout; 1=both; 2=syslog
syslog_facility = 'LOCAL0'
syslog_ident = 'postgres'
# - When to Log -
#client_min_messages = notice # Values, in order of decreasing detail:
# debug5, debug4, debug3, debug2, debug1,
# log, info, notice, warning, error
#log_min_messages = notice # Values, in order of decreasing detail:
# debug5, debug4, debug3, debug2, debug1,
# info, notice, warning, error, log, fatal,
# panic
#log_error_verbosity = default # terse, default, or verbose messages
#log_min_error_statement = panic # Values in order of increasing severity:
# debug5, debug4, debug3, debug2, debug1,
# info, notice, warning, error, panic(off)
#log_min_duration_statement = -1 # Log all statements whose
# execution time exceeds the value, in
# milliseconds. Zero prints all queries.
# Minus-one disables.
#silent_mode = false # DO NOT USE without Syslog!
# - What to Log -
#debug_print_parse = false
#debug_print_rewritten = false
#debug_print_plan = false
#debug_pretty_print = false
#log_connections = false
#log_duration = false
#log_pid = false
log_statement = true
#log_timestamp = false
#log_hostname = false
#log_source_port = false
The problem may be in your /etc/syslog.conf file. It directs different
classes of messages different places, and can direct them to another
machine.
Rick
"David Klugmann"
<dklugmann@hotmail.com> To: pgsql-general@postgresql.org
Sent by: cc:
pgsql-general-owner@pos Subject: [GENERAL] Problem getting sql statement logging to work
tgresql.org
01/18/2005 10:05 AM
Hi
I am trying to log my sql statements to the syslog file.
I have the following entries in my postgresql.conf file yet it doesn't seem
to log anything.
The OS is Solaris 9
I am looking at /var/adm/messages and can't see anything from Postgres and
I
have run lots of sql.
I saw one article on the web which suggested setting debug_print_query =
on.
Is this an alternative way of setting logging ?
Thanks for any help.
David Klugmann
# - Syslog -
syslog = 2 # range 0-2; 0=stdout; 1=both;
2=syslog
syslog_facility = 'LOCAL0'
syslog_ident = 'postgres'
# - When to Log -
#client_min_messages = notice # Values, in order of decreasing
detail:
# debug5, debug4,
debug3, debug2, debug1,
# log, info, notice,
warning, error
#log_min_messages = notice # Values, in order of decreasing
detail:
# debug5, debug4,
debug3, debug2, debug1,
# info, notice, warning,
error, log, fatal,
# panic
#log_error_verbosity = default # terse, default, or verbose messages
#log_min_error_statement = panic # Values in order of increasing severity:
# debug5, debug4,
debug3, debug2, debug1,
# info, notice,
warning, error, panic(off)
#log_min_duration_statement = -1 # Log all statements whose
# execution time exceeds
the value, in
# milliseconds. Zero
prints all queries.
# Minus-one disables.
#silent_mode = false # DO NOT USE without Syslog!
# - What to Log -
#debug_print_parse = false
#debug_print_rewritten = false
#debug_print_plan = false
#debug_pretty_print = false
#log_connections = false
#log_duration = false
#log_pid = false
log_statement = true
#log_timestamp = false
#log_hostname = false
#log_source_port = false
---------------------------(end of broadcast)---------------------------
TIP 8: explain analyze is your friend
Many thanks for the help Michael I did restart the postmaster a few times. I will give the other suggestions a go and let you know what happens. David >From: Michael Fuhr <mike@fuhr.org> >To: David Klugmann <dklugmann@hotmail.com> >CC: pgsql-general@postgresql.org >Subject: Re: [GENERAL] Problem getting sql statement logging to work >Date: Tue, 18 Jan 2005 09:51:27 -0700 > >On Tue, Jan 18, 2005 at 03:05:34PM +0000, David Klugmann wrote: > > > > I have the following entries in my postgresql.conf file yet it doesn't >seem > > to log anything. > >Did you restart the backend after modifying postgresql.conf? > > > syslog_facility = 'LOCAL0' > >Have you configured /etc/syslog.conf to send local0 messages anywhere? >You might need to add an appropriate line to /etc/syslog.conf, touch >the desired log file if it doesn't already exist, and send a HUP >signal to syslogd. > >You can test your syslog configuration with the "logger" program. >I think log_statement sends messages to the LOG_INFO syslog level, >so run the following command from the shell prompt and see if the >message gets logged: > >logger -p local0.info "test 1 to local0.info" > >Verify that your syslog configuration is working, make sure you've >restarted the PostgreSQL backend so it knows about the configuration >changes, and try again. > >-- >Michael Fuhr >http://www.fuhr.org/~mfuhr/
On Tue, Jan 18, 2005 at 03:05:34PM +0000, David Klugmann wrote: > > I have the following entries in my postgresql.conf file yet it doesn't seem > to log anything. Did you restart the backend after modifying postgresql.conf? > syslog_facility = 'LOCAL0' Have you configured /etc/syslog.conf to send local0 messages anywhere? You might need to add an appropriate line to /etc/syslog.conf, touch the desired log file if it doesn't already exist, and send a HUP signal to syslogd. You can test your syslog configuration with the "logger" program. I think log_statement sends messages to the LOG_INFO syslog level, so run the following command from the shell prompt and see if the message gets logged: logger -p local0.info "test 1 to local0.info" Verify that your syslog configuration is working, make sure you've restarted the PostgreSQL backend so it knows about the configuration changes, and try again. -- Michael Fuhr http://www.fuhr.org/~mfuhr/
Michael Many thanks. Configuring the syslog.conf and using logger to check it was working did the trick. Previously I had no local0 entries in the syslog.conf which was my problem. David >From: Michael Fuhr <mike@fuhr.org> >To: David Klugmann <dklugmann@hotmail.com> >CC: pgsql-general@postgresql.org >Subject: Re: [GENERAL] Problem getting sql statement logging to work >Date: Tue, 18 Jan 2005 09:51:27 -0700 > >On Tue, Jan 18, 2005 at 03:05:34PM +0000, David Klugmann wrote: > > > > I have the following entries in my postgresql.conf file yet it doesn't >seem > > to log anything. > >Did you restart the backend after modifying postgresql.conf? > > > syslog_facility = 'LOCAL0' > >Have you configured /etc/syslog.conf to send local0 messages anywhere? >You might need to add an appropriate line to /etc/syslog.conf, touch >the desired log file if it doesn't already exist, and send a HUP >signal to syslogd. > >You can test your syslog configuration with the "logger" program. >I think log_statement sends messages to the LOG_INFO syslog level, >so run the following command from the shell prompt and see if the >message gets logged: > >logger -p local0.info "test 1 to local0.info" > >Verify that your syslog configuration is working, make sure you've >restarted the PostgreSQL backend so it knows about the configuration >changes, and try again. > >-- >Michael Fuhr >http://www.fuhr.org/~mfuhr/