NAME

Plack::Middleware::DBIC::QueryLog - Expose a DBIC QueryLog Instance in Middleware

SYNOPSIS

use Plack::Builder;
builder {
  enable 'DBIC::QueryLog',
    querylog_args => {passthrough => 1};
  $app;
};

DESCRIPTION

Plack::Middleware::DBIC::QueryLog does one thing, it places an object that is either an instance of DBIx::Class::QueryLog OR a compatible object into the $env under plack.middleware.dbic.querylog. A new instance is created for each incoming request.

The querylog is intended to be used by DBIX::Class to log and profile SQL queries, particularly during the context of a web request handled by your Plack application. See the documentation for DBIx::Class::QueryLog and in LDBIx::Class::Storage/debugobj for more information.

This middleware is intended to act as a bridge between DBIx::Class, which can consume and populate the querylog, with a reporting tool such as seen in Plack::Middleware::Debug::DBIC::QueryLog. This functionality was refactored out of Plack::Middleware::Debug::DBIC::QueryLog to facilitate interoperation with other types of reporting tools.

Unless you are building some custom logging tools, you probably just want to use the existing debug panel (Plack::Middleware::Debug::DBIC::QueryLog) rather than building something custom around this middleware.

If you are using an existing web application development system such as Catalyst, you can use Catalyst::TraitFor::Model::DBIC::Schema::QueryLog::AdoptPlack to 'hook' the query log into your DBIx::Class schema model. If you are using a different framework, or building your own, please consider releasing your code or sending me a document patch suitable for including in a workbook or FAQ.

USAGE

Used like any other Plack based middlewares.

ARGUMENTS

This middleware accepts the following arguments.

querylog_class

This is the class which is used to build the querylog unless one is already defined. It defaults to DBIx::Class::QueryLog. You should probably leave this alone unless you need to subclass or augment DBIx::Class::QueryLog.

If the class name you pass has not already been included (via use or require) we will automatically try to c it.

querylog_args

Accepts a HashRef of data which will be passed to L</"querylog_class"> when building the querylog.

SEE ALSO

Plack, Plack::Middleware, Plack::Middleware::Debug::DBIC::QueryLog, Catalyst::TraitFor::Model::DBIC::Schema::QueryLog::AdoptPlack

AUTHOR

John Napiorkowski, <jjnapiork@cpan.org>

COPYRIGHT & LICENSE

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.