Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

Re^2: Trap the error msg from Mime::Lite

by chrism01 (Friar)
on Jan 23, 2008 at 04:28 UTC ( #663741=note: print w/ replies, xml ) Need Help??


in reply to Re: Trap the error msg from Mime::Lite
in thread Trap the error msg from Mime::Lite

Thx,
That seems to work.
The only problem is that it outputs to stdout. What I need to do is capture those error(s), print a copy to stdout (which along with stderr is re-directed to my logfile) and save a copy in a variable that I can then use elsewhere.
I'm having trouble re-arranging your code to do that (save a copy)
Help..

Cheers
Chris


Comment on Re^2: Trap the error msg from Mime::Lite
Re^3: Trap the error msg from Mime::Lite
by Sidhekin (Priest) on Jan 23, 2008 at 13:36 UTC

    What I need to do is capture those error(s), print a copy to stdout (which along with stderr is re-directed to my logfile) and save a copy in a variable that I can then use elsewhere.

    Right. I think I'd choose grep for that one. Replace my last line above with these:

    my @errors = grep { defined && length } $trap->die, $trap->stderr, $tr +ap->stdout; print "Error: $_\n" for @errors; # any and all error(s) are now left in @errors

    Update: Oh, and "logfile"? Is this for production, not just testing? Then I'd definitely get Test::Trap version 0.1.0 — it fixes, among other things, a bug that in this case might slowly fill up your /tmp partition. Oops.

    print "Just another Perl ${\(trickster and hacker)},"
    The Sidhekin proves Sidhe did it!

      Thx for the warning(!). Just checked and the 1st 2 lines are:
      package Test::Trap; use version; $VERSION = qv('0.1.0');
      so hopefully that's all good. :)

      Actually, I already came up with this:

      # Send trap { $msg->send or $error_msg = "Error: $! $@\n" }; $_ and $error_msg .= ": $_\n" for $trap->die, $trap->stdout, $trap +->stderr; exit_with_error("email_csv_file() failed: $error_msg") if( $error_ +msg );
      to try and get everything. Looks ok?

      My exit_with_error($msg) sub sends a regular email via Mail::Mailer and prints to the logfile, then cleans up other stuff and and exit(1) etc.
      Y, it's a prodn system. No cxn to internet though (and I don't have root), so I have to go through the sysadmin to get extra modules installed like Test::Trap, version.pm etc. Hence the delay in my replies.

      Cheers
      Chris

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (6)
As of 2014-08-02 07:18 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Who would be the most fun to work for?















    Results (55 votes), past polls