# 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](http://search.cpan.org/perldoc?Plack::Middleware::DBIC::QueryLog) does one thing, it places an object that is either an instance of [DBIx::Class::QueryLog](http://search.cpan.org/perldoc?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](http://search.cpan.org/perldoc?DBIX::Class) to log and profile SQL queries, particularly during the context of a web request handled by your [Plack](http://search.cpan.org/perldoc?Plack) application. See the documentation for [DBIx::Class::QueryLog](http://search.cpan.org/perldoc?DBIx::Class::QueryLog) and in L for more information. This middleware is intended to act as a bridge between [DBIx::Class](http://search.cpan.org/perldoc?DBIx::Class), which can consume and populate the querylog, with a reporting tool such as seen in [Plack::Middleware::Debug::DBIC::QueryLog](http://search.cpan.org/perldoc?Plack::Middleware::Debug::DBIC::QueryLog). This functionality was refactored out of [Plack::Middleware::Debug::DBIC::QueryLog](http://search.cpan.org/perldoc?Plack::Middleware::Debug::DBIC::QueryLog) to facilitate interoperation with other types of reporting tools. For example, you may want query logging but you don't need the Plack debug panels. Unless you are building some custom logging tools, you probably just want to use the existing debug panel ([Plack::Middleware::Debug::DBIC::QueryLog](http://search.cpan.org/perldoc?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](http://search.cpan.org/perldoc?Catalyst), you can use [Catalyst::TraitFor::Model::DBIC::Schema::QueryLog::AdoptPlack](http://search.cpan.org/perldoc?Catalyst::TraitFor::Model::DBIC::Schema::QueryLog::AdoptPlack) to 'hook' the query log into your [DBIx::Class](http://search.cpan.org/perldoc?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. # 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](http://search.cpan.org/perldoc?DBIx::Class::QueryLog). You should probably leave this alone unless you need to subclass or augment [DBIx::Class::QueryLog](http://search.cpan.org/perldoc?DBIx::Class::QueryLog). If the class name you pass has not already been included (via `use` or `require`) we will automatically try to `require` it. ## querylog_args Accepts a HashRef of data which will be passed to L when building the `querylog`. # SEE ALSO [Plack](http://search.cpan.org/perldoc?Plack), [Plack::Middleware](http://search.cpan.org/perldoc?Plack::Middleware), [Plack::Middleware::Debug::DBIC::QueryLog](http://search.cpan.org/perldoc?Plack::Middleware::Debug::DBIC::QueryLog), [Catalyst::TraitFor::Model::DBIC::Schema::QueryLog::AdoptPlack](http://search.cpan.org/perldoc?Catalyst::TraitFor::Model::DBIC::Schema::QueryLog::AdoptPlack) # AUTHOR John Napiorkowski, `` # COPYRIGHT & LICENSE Copyright 2010, John Napiorkowski This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.