Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

(RhetTbull) Re: duplicating STDERR to a logfile...

by RhetTbull (Curate)
on May 09, 2002 at 02:03 UTC ( #165234=note: print w/ replies, xml ) Need Help??


in reply to duplicating STDERR to a logfile...

My favorite way to handle this is with Filter::Handle. For example:

use warnings; use strict; use Carp; use Filter::Handle qw/subs/; open (LOGFILE, ">logfile") or die "could not open logfile: $!"; #filter STDERR through an anonymous sub Filter \*STDERR, sub {local $_ = "@_"; print LOGFILE "Filtered: $_ "; +$_}; #need a signal handler to capture warnings from carp and warn which ar +e not captured by Filter::Handle (but by capturing ourselves and prin +ting to STDERR, they do get picked up by Filter::Handle) $SIG{__WARN__} = sub {local $_ = "@_"; print STDERR $_}; #prints to both STDERR and to LOGFILE print STDERR "error!\n"; carp "carp!"; warn "warn!"; #STDERR will no longer be filtered through your sub UnFilter \*STDERR; print STDERR "not captured to log\n"; warn "this one got away"; close LOGFILE;
Update: Added signal handler to capture output of warn and carp


Comment on (RhetTbull) Re: duplicating STDERR to a logfile...
Download Code
Re: (RhetTbull) Re: duplicating STDERR to a logfile...
by cadphile (Beadle) on May 17, 2002 at 00:50 UTC
    Thanks RhetTbull -- This is the exact solution I was hunting for. Simple implementation, and it works just right.

    cheers

    Cadphile...

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://165234]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (8)
As of 2014-12-26 09:57 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (171 votes), past polls