Re: Silencing NOTICEs in Perl Pg
От | Andrew Perrin |
---|---|
Тема | Re: Silencing NOTICEs in Perl Pg |
Дата | |
Msg-id | Pine.LNX.4.21.0208301159170.27669-100000@perrin.socsci.unc.edu обсуждение исходный текст |
Ответ на | Re: Silencing NOTICEs in Perl Pg (David Wheeler <david@wheeler.net>) |
Ответы |
Re: Silencing NOTICEs in Perl Pg
|
Список | pgsql-admin |
I don't know the Pg module at all, but if it uses warn() to dump those notices to STDERR, you can use a sig handler to catch them: $SIG{'__WARN__'} = sub { return if $_[0] =~ /^NOTICE:/; print STDERR join ("\n",@_); print STDERR "...at line " . caller(1) . "\n"; } ---------------------------------------------------------------------- Andrew J Perrin - http://www.unc.edu/~aperrin Assistant Professor of Sociology, U of North Carolina, Chapel Hill clists@perrin.socsci.unc.edu * andrew_perrin (at) unc.edu On Thu, 29 Aug 2002, David Wheeler wrote: > 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 > > > ---------------------------(end of broadcast)--------------------------- > TIP 4: Don't 'kill -9' the postmaster >
В списке pgsql-admin по дате отправления: