logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Plack::Middleware::LogErrors - Map psgi.errors to psgix.logger or other logger

Author

       Karen Etheridge <ether@cpan.org>

Configuration

"logger"
       A code reference for logging messages, that conforms to the psgix.logger specification.  If not provided,
       "psgix.logger" is used, or the application will generate an error at runtime if there is no such logger
       configured.

Description

       "psgi.errors" defaults to "STDERR" in most backends, which results in content going somewhere unhelpful
       like the server console.

       This middleware simply remaps the "psgi.errors" stream to the "psgix.logger" stream, or an explicit
       logger that you provide.

       This is especially handy when used in combination with other middlewares such as
       Plack::Middleware::LogWarn (which diverts Perl warnings to "psgi.errors");
       Plack::Middleware::HTTPExceptions (which diverts uncaught exceptions to "psgi.errors"); and
       Plack::Middleware::AccessLog, which defaults to "psgi.errors" when not passed a logger -- which is also
       automatically applied via plackup (so if you provided no "--access-log" option indicating a filename,
       "psgi.errors" is used).

Name

       Plack::Middleware::LogErrors - Map psgi.errors to psgix.logger or other logger

See Also

       •   PSGI::Extensions - the definition of "psgix.logger"

       •   "The Error Stream" in PSGI - the definition of "psgi.errors"

       •   Plack::Middleware::LogWarn - maps warnings to "psgi.errors"

       •   Plack::Middleware::HTTPExceptions - maps exceptions to "psgi.errors"

       •   Plack::Middleware::LogDispatch - use a Log::Dispatch logger for "psgix.logger"

       •   Plack::Middleware::Log4perl - use a Log::Log4perl logger for "psgix.logger"

       •   Plack::Middleware::SimpleLogger - essentially the opposite of this module!

Support

       Bugs         may        be        submitted        through        the        RT        bug        tracker
       <https://rt.cpan.org/Public/Dist/Display.html?Name=Plack-Middleware-LogErrors>                        (or
       bug-Plack-Middleware-LogErrors@rt.cpan.org <mailto:bug-Plack-Middleware-LogErrors@rt.cpan.org>).

       There    is    also    a    mailing    list    available    for    users   of   this   distribution,   at
       <https://groups.google.com/forum/#!forum/psgi-plack>.

       There is also an irc channel available for users of this  distribution,  at  "#plack"  on  "irc.perl.org"
       <irc://irc.perl.org/#plack>.

       I am also usually active on irc, as 'ether' at "irc.perl.org".

Synopsis

       Using a logger you have already configured (using Log::Dispatch as an example):

           use Log::Dispatch;
           my $logger = Log::Dispatch->new;
           $logger->add( Log::Dispatch::File->new(...) );

           builder {
               enable 'LogDispatch', logger => $logger;
               enable 'LogErrors';
               $app;
           }

       Using an explicitly defined logger:

           builder {
               enable 'LogErrors', logger => sub {
                   my $args = shift;
                   $logger->log(%$args);
               };
               $app;
           }

Version

       version 0.003

See Also