Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

Re^4: Best practice ipc and Log::Log4perl

by codeacrobat (Chaplain)
on Jul 05, 2008 at 08:41 UTC ( [id://695671]=note: print w/replies, xml ) Need Help??


in reply to Re^3: Best practice ipc and Log::Log4perl
in thread Best practice ipc and Log::Log4perl

Thanks for your solution IPC::Run is probably the best way to go. If you set $|++ in timestamp.pl we have it.
perl -MIPC::Run=run -e ' run( [ "perl", "timestamp.pl" ], "1>", sub { print "out " . time() . " " , @_ }, "2>", sub { print "err ". time() . " " , @_} ) ' out 1215247029 1215247029 info err 1215247029 1215247029 warn err 1215247029 1215247029 warn out 1215247029 1215247029 info err 1215247029 1215247029 warn err 1215247029 1215247029 warn out 1215247030 1215247030 info err 1215247030 1215247030 warn err 1215247030 1215247030 warn err 1215247030 1215247030 warn err 1215247030 1215247030 warn out 1215247030 1215247030 info err 1215247030 1215247030 warn out 1215247030 1215247030 info out 1215247030 1215247030 info out 1215247031 1215247030 info out 1215247031 1215247031 info err 1215247031 1215247031 warn err 1215247031 1215247031 warn out 1215247031 1215247031 info err 1215247031 1215247031 warn out 1215247031 1215247031 info out 1215247031 1215247031 info err 1215247031 1215247031 warn err 1215247031 1215247031 warn

print+qq(\L@{[ref\&@]}@{['@'x7^'!#2/"!4']});

Replies are listed 'Best First'.
Re^5: Best practice ipc and Log::Log4perl
by jointwork (Initiate) on Apr 25, 2009 at 20:04 UTC
    Hi, Excuse me for posting to this old threat, but I run in a similar situation where IPC::Run and Log::Log4perl were combined. I must remark that the title is actually misleading because no one has mentioned log4perl in his/her solution. Thus I will:
    use IPC::Run qw(run new_chunker); # snip-snap-snip # ... my @cmd = qw(find /usr/bin -type f); run(\@cmd, "1>", new_chunker, \&logSdtout, "2>", new_chunker, \&logSdt +err); sub logSdtout { $logger->info(@_); } sub logSdterr { $logger->error(@_); }
    edit: you need to pass the filter "new_chunker" to IPC::Run to break the output from your external program into newlines. Otherwise you will run into strange exceptions (undefined values) causing IPC::Run to fail. Cheers, Daniel

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others romping around the Monastery: (3)
As of 2024-04-16 21:06 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found