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.