bliako has asked for the wisdom of the Perl Monks concerning the following question:
Dear Monks,
A Mojolicious app uses an external module (Mail::IMAPClient) which uses Carp which logs to STDERR. I need to tell Carp to use Mojoapp's own Mojo::Log object (which logs to a file with specific settings etc.).
many thanks, bliako
EDIT: I realised that Mail::IMAPClient outputs debug information as well and in its documentation it says that one can specify a filehandle to redirect just that *debug* output. In retrospect, this was my biggest problem when I asked this question. I stupidly thought all that debug output was going through Carp. For sending Carp's output to a (Mojo) logger, see solution below Re: Change Carp's output to Mojo::Log. For redirecting the debug output as well, I leave this as a reminder mostly to me (it is copypasted from Mojo::Log's and Mail::IMAPClient's doc):
# redirect Mail::IMAPClient to Mojo::Log's filehandle. use Mail::IMAPClient; use Mojo::Log; my $log = Mojo::Log->new(path => "logfile"); my $client = Mail::IMAPClient->new( ... Debug => 1, Debug_fh => $log->handle );
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Change Carp's output to Mojo::Log
by Corion (Patriarch) on Jun 09, 2022 at 10:31 UTC | |
Re: Change Carp's output to Mojo::Log
by haukex (Archbishop) on Jun 09, 2022 at 12:06 UTC | |
by bliako (Monsignor) on Jun 09, 2022 at 20:27 UTC | |
Re: Change Carp's output to Mojo::Log
by mr_mischief (Monsignor) on Jun 09, 2022 at 13:35 UTC | |
Re: Change Carp's output to Mojo::Log
by Anonymous Monk on Jun 09, 2022 at 17:57 UTC |