Re: Silencing NOTICEs in Perl Pg - Mailing list pgsql-admin

From David Wheeler
Subject Re: Silencing NOTICEs in Perl Pg
Date
Msg-id 7B2DC566-BBAF-11D6-B671-0003931A964A@wheeler.net
Whole thread Raw
In response to Re: Silencing NOTICEs in Perl Pg  (Bruno Wolff III <bruno@wolff.to>)
Responses Re: Silencing NOTICEs in Perl Pg
Re: Silencing NOTICEs in Perl Pg
Re: Silencing NOTICEs in Perl Pg
List 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@wheeler.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@wheeler.net                                 ICQ: 15726394
http://david.wheeler.net/                      Yahoo!: dew7e
                                                Jabber: Theory@jabber.org


pgsql-admin by date:

Previous
From: Bruno Wolff III
Date:
Subject: Re: Some timestamp problems
Next
From: Bruce Momjian
Date:
Subject: Re: Silencing NOTICEs in Perl Pg