Re: Silencing NOTICEs in Perl Pg

From: David Wheeler <david(at)wheeler(dot)net>
To: Bruno Wolff III <bruno(at)wolff(dot)to>
Cc: pgsql-admin(at)postgresql(dot)org
Subject: Re: Silencing NOTICEs in Perl Pg
Date: 2002-08-30 00:29:01
Message-ID: 7B2DC566-BBAF-11D6-B671-0003931A964A@wheeler.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

On Thursday, August 29, 2002, at 01:02 PM, Bruno Wolff III wrote:

> On Thu, Aug 29, 2002 at 12:17:16 -0700,
> David Wheeler <david(at)wheeler(dot)net> wrote:
>> BTW, I missed the beginning of this thread, but based on the subject,
>> I'd sure like to find out if there's a simple way to suppress NOTICEs
>> using DBI/DBD::Pg. I've tried a number of tricks, but short of closing
>> STDOUT and STDERR in my Perl script, I've not found a way to do it.
>> PrintError => 0 doesn't do the trick.
>
> I do the following before doing anything with the database:
> open(OLDERR, '>&STDERR');
> close(STDERR);
> open(STDERR, '>/dev/null');

Thanks for the suggestion. Unfortunately, that doesn't allow me to
filter out just the NOTICEs, and let everything else be printed. The
solution I've come up with, for those who are interested, is either
this:

open STDERR, "| perl -e 'while (<>) { print unless /^NOTICE: / }'"
or die "Cannot pipe STDERR: $!\n";

Or this:

open STDERR, "| grep -v '^NOTICE: '"
or die "Cannot pipe STDERR to grep\n";

The former will be more portable, since we already know we have Perl ;-)

Thanks for the help!

David

--
David Wheeler AIM: dwTheory
david(at)wheeler(dot)net ICQ: 15726394
http://david.wheeler.net/ Yahoo!: dew7e
Jabber: Theory(at)jabber(dot)org

In response to

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message Bruce Momjian 2002-08-30 00:50:20 Re: Silencing NOTICEs in Perl Pg
Previous Message =?ISO-8859-1?Q?Gr=E9gory_Faruch?= 2002-08-29 23:30:30 configure script problem