using syslog to capture RAISE notices

Started by Dan Langilleabout 24 years ago5 messagesgeneral
Jump to latest
#1Dan Langille
dan@langille.org

Can syslog be configured to capture RAISE messages?

Reading http://www.postgresql.org/idocs/index.php?plpgsql-
description.html#PLPGSQL-DESCRIPTION-ABORTING-AND-MESSAGES, I know how to
raise an exception, notice, or debug message. But I've been unable to get
those messages logged via syslog.

I have this in syslog.conf:

*.debug;*.notice;kern.debug;lpr.info;mail.crit;news.err /var/log/messages

Here is the test routine I've used:

DROP FUNCTION test();
CREATE FUNCTION test() returns int8 AS '
BEGIN
raise DEBUG \'this is dan raising a notice\';
RETURN 1;
END
' LANGUAGE 'plpgsql';

And the test:

fp2rifixed=# select test();
test
------
1
(1 row)

But nothing appears in /var/log/messages (yes, syslogd was HUP'd).

FWIW, this is PostgreSQL 7.2 under FreeBSD 4.5.
--
Dan Langille
The FreeBSD Diary - http://freebsddiary.org/ - practical examples

#2Bruce Momjian
bruce@momjian.us
In reply to: Dan Langille (#1)
Re: using syslog to capture RAISE notices

Strange. I see this in 7.2 elog.c:

#ifdef ENABLE_SYSLOG
/* Write to syslog, if enabled */
if (Use_syslog >= 1)
{
int syslog_level;

switch (lev)
{
case DEBUG:
syslog_level = LOG_DEBUG;
break;
case NOTICE:
syslog_level

I assume you compiled with syslog enabled by configure? Are you seeing
anything in syslog or are you just lacking the plpgsql RAISE?

---------------------------------------------------------------------------

Dan Langille wrote:

Can syslog be configured to capture RAISE messages?

Reading http://www.postgresql.org/idocs/index.php?plpgsql-
description.html#PLPGSQL-DESCRIPTION-ABORTING-AND-MESSAGES, I know how to
raise an exception, notice, or debug message. But I've been unable to get
those messages logged via syslog.

I have this in syslog.conf:

*.debug;*.notice;kern.debug;lpr.info;mail.crit;news.err /var/log/messages

Here is the test routine I've used:

DROP FUNCTION test();
CREATE FUNCTION test() returns int8 AS '
BEGIN
raise DEBUG \'this is dan raising a notice\';
RETURN 1;
END
' LANGUAGE 'plpgsql';

And the test:

fp2rifixed=# select test();
test
------
1
(1 row)

But nothing appears in /var/log/messages (yes, syslogd was HUP'd).

FWIW, this is PostgreSQL 7.2 under FreeBSD 4.5.
--
Dan Langille
The FreeBSD Diary - http://freebsddiary.org/ - practical examples

---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026
#3Dan Langille
dan@langille.org
In reply to: Bruce Momjian (#2)
Re: using syslog to capture RAISE notices

I compiled with the default FreeBSD install:

CONFIGURE_ARGS= --enable-locale --enable-syslog --with-CXX \
--docdir=${PREFIX}/share/doc --with-
libdir=${LOCALBASE}/lib \
--with-includes=${LOCALBASE}/include

What's this Use_syslog? Is that a user configurable item?
I am seeing nothing in syslog. The raise is working:

test=# CREATE FUNCTION test() returns int8 AS '
test'# BEGIN
test'# raise DEBUG \'this is dan raising a notice\';
test'# RETURN 1;
test'# END
test'# ' LANGUAGE 'plpgsql';
CREATE
test=# select test();
test
------
1
(1 row)

test=#

On 11 Mar 2002 at 15:46, Bruce Momjian wrote:

Strange. I see this in 7.2 elog.c:

#ifdef ENABLE_SYSLOG
/* Write to syslog, if enabled */
if (Use_syslog >= 1)
{
int syslog_level;

switch (lev)
{
case DEBUG:
syslog_level = LOG_DEBUG;
break;
case NOTICE:
syslog_level

I assume you compiled with syslog enabled by configure? Are you seeing
anything in syslog or are you just lacking the plpgsql RAISE?

---------------------------------------------------------------------------

Dan Langille wrote:

Can syslog be configured to capture RAISE messages?

Reading http://www.postgresql.org/idocs/index.php?plpgsql-
description.html#PLPGSQL-DESCRIPTION-ABORTING-AND-MESSAGES, I know how to
raise an exception, notice, or debug message. But I've been unable to
get those messages logged via syslog.

I have this in syslog.conf:

*.debug;*.notice;kern.debug;lpr.info;mail.crit;news.err /var/log/messages

Here is the test routine I've used:

DROP FUNCTION test();
CREATE FUNCTION test() returns int8 AS '
BEGIN
raise DEBUG \'this is dan raising a notice\';
RETURN 1;
END
' LANGUAGE 'plpgsql';

And the test:

fp2rifixed=# select test();
test
------
1
(1 row)

But nothing appears in /var/log/messages (yes, syslogd was HUP'd).

FWIW, this is PostgreSQL 7.2 under FreeBSD 4.5.
--
Dan Langille
The FreeBSD Diary - http://freebsddiary.org/ - practical examples

---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster

-- 
Bruce Momjian                        |  http://candle.pha.pa.us
pgman@candle.pha.pa.us               |  (610) 853-3000
+  If your life is a hard drive,     |  830 Blythe Avenue
+  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

--
Dan Langille
The FreeBSD Diary - http://freebsddiary.org/ - practical examples

#4Bruce Momjian
bruce@momjian.us
In reply to: Dan Langille (#3)
Re: using syslog to capture RAISE notices

Yes, use postgresql.conf:

#syslog = 0 # range 0-2
#syslog_facility = 'LOCAL0'
#syslog_ident = 'postgres'

Set syslog to 1 or 2. Remove # comment character.

---------------------------------------------------------------------------

Dan Langille wrote:

I compiled with the default FreeBSD install:

CONFIGURE_ARGS= --enable-locale --enable-syslog --with-CXX \
--docdir=${PREFIX}/share/doc --with-
libdir=${LOCALBASE}/lib \
--with-includes=${LOCALBASE}/include

What's this Use_syslog? Is that a user configurable item?
I am seeing nothing in syslog. The raise is working:

test=# CREATE FUNCTION test() returns int8 AS '
test'# BEGIN
test'# raise DEBUG \'this is dan raising a notice\';
test'# RETURN 1;
test'# END
test'# ' LANGUAGE 'plpgsql';
CREATE
test=# select test();
test
------
1
(1 row)

test=#

On 11 Mar 2002 at 15:46, Bruce Momjian wrote:

Strange. I see this in 7.2 elog.c:

#ifdef ENABLE_SYSLOG
/* Write to syslog, if enabled */
if (Use_syslog >= 1)
{
int syslog_level;

switch (lev)
{
case DEBUG:
syslog_level = LOG_DEBUG;
break;
case NOTICE:
syslog_level

I assume you compiled with syslog enabled by configure? Are you seeing
anything in syslog or are you just lacking the plpgsql RAISE?

---------------------------------------------------------------------------

Dan Langille wrote:

Can syslog be configured to capture RAISE messages?

Reading http://www.postgresql.org/idocs/index.php?plpgsql-
description.html#PLPGSQL-DESCRIPTION-ABORTING-AND-MESSAGES, I know how to
raise an exception, notice, or debug message. But I've been unable to
get those messages logged via syslog.

I have this in syslog.conf:

*.debug;*.notice;kern.debug;lpr.info;mail.crit;news.err /var/log/messages

Here is the test routine I've used:

DROP FUNCTION test();
CREATE FUNCTION test() returns int8 AS '
BEGIN
raise DEBUG \'this is dan raising a notice\';
RETURN 1;
END
' LANGUAGE 'plpgsql';

And the test:

fp2rifixed=# select test();
test
------
1
(1 row)

But nothing appears in /var/log/messages (yes, syslogd was HUP'd).

FWIW, this is PostgreSQL 7.2 under FreeBSD 4.5.
--
Dan Langille
The FreeBSD Diary - http://freebsddiary.org/ - practical examples

---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster

-- 
Bruce Momjian                        |  http://candle.pha.pa.us
pgman@candle.pha.pa.us               |  (610) 853-3000
+  If your life is a hard drive,     |  830 Blythe Avenue
+  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

--
Dan Langille
The FreeBSD Diary - http://freebsddiary.org/ - practical examples

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026
#5Dan Langille
dan@langille.org
In reply to: Bruce Momjian (#4)
Re: using syslog to capture RAISE notices

That was it. Thank you.

syslog = 2 # range 0-2

For those using FreeBSD, the configuration file is:
/usr/local/pgsql/data/postgresql.conf

and HUP the running postmaster after your change.

Thanks Bruce.

On 11 Mar 2002 at 16:33, Bruce Momjian wrote:

Yes, use postgresql.conf:

#syslog = 0 # range 0-2
#syslog_facility = 'LOCAL0'
#syslog_ident = 'postgres'

Set syslog to 1 or 2. Remove # comment character.

---------------------------------------------------------------------------

Dan Langille wrote:

I compiled with the default FreeBSD install:

CONFIGURE_ARGS= --enable-locale --enable-syslog --with-CXX \
--docdir=${PREFIX}/share/doc --with-
libdir=${LOCALBASE}/lib \
--with-includes=${LOCALBASE}/include

What's this Use_syslog? Is that a user configurable item?
I am seeing nothing in syslog. The raise is working:

test=# CREATE FUNCTION test() returns int8 AS '
test'# BEGIN
test'# raise DEBUG \'this is dan raising a notice\';
test'# RETURN 1;
test'# END
test'# ' LANGUAGE 'plpgsql';
CREATE
test=# select test();
test
------
1
(1 row)

test=#

On 11 Mar 2002 at 15:46, Bruce Momjian wrote:

Strange. I see this in 7.2 elog.c:

#ifdef ENABLE_SYSLOG
/* Write to syslog, if enabled */
if (Use_syslog >= 1)
{
int syslog_level;

switch (lev)
{
case DEBUG:
syslog_level = LOG_DEBUG;
break;
case NOTICE:
syslog_level

I assume you compiled with syslog enabled by configure? Are you seeing
anything in syslog or are you just lacking the plpgsql RAISE?

-----------------------------------------------------------------------
----

Dan Langille wrote:

Can syslog be configured to capture RAISE messages?

Reading http://www.postgresql.org/idocs/index.php?plpgsql-
description.html#PLPGSQL-DESCRIPTION-ABORTING-AND-MESSAGES, I know
how to raise an exception, notice, or debug message. But I've been
unable to get those messages logged via syslog.

I have this in syslog.conf:

*.debug;*.notice;kern.debug;lpr.info;mail.crit;news.err
/var/log/messages

Here is the test routine I've used:

DROP FUNCTION test();
CREATE FUNCTION test() returns int8 AS '
BEGIN
raise DEBUG \'this is dan raising a notice\';
RETURN 1;
END
' LANGUAGE 'plpgsql';

And the test:

fp2rifixed=# select test();
test
------
1
(1 row)

But nothing appears in /var/log/messages (yes, syslogd was HUP'd).

FWIW, this is PostgreSQL 7.2 under FreeBSD 4.5.

--
Dan Langille
The FreeBSD Diary - http://freebsddiary.org/ - practical examples