Plack::Debugger::Panel::DBIC::QueryLog - DBIC query log panel for Plack::Debugger
Version 0.002
Adds a debug panel and querylog object for logging DBIx::Class queries.
Has support for Catalyst via a Catalyst::TraitFor::Model::DBIC::Schema::QueryLog compatible trait, Catalyst::TraitFor::Model::DBIC::Schema::QueryLog::AdoptPlack.
use Plack::Builder; use JSON; use Plack::Debugger; use Plack::Debugger::Storage; use Plack::App::Debugger; use Plack::Debugger::Panel::DBIC::QueryLog; use ... # other Panels use DBICx::Sugar qw/schema/; use MyApp; # your PSGI app (Dancer2 perhaps) # create middleware wrapper my $mw = sub { my $app = shift; sub { my $env = shift; my $querylog = Plack::Middleware::DBIC::QueryLog->get_querylog_from_env($env); my $cloned_schema = schema->clone; $cloned_schema->storage->debug(1); $cloned_schema->storage->debugobj($querylog); my $res = $app->($env); return $res; }; }; # wrap your app my $app = $mw->( MyApp->to_app ); my $debugger = Plack::Debugger->new( storage => Plack::Debugger::Storage->new( data_dir => '/tmp/debugger_panel', serializer => sub { encode_json( shift ) }, deserializer => sub { decode_json( shift ) }, filename_fmt => "%s.json", ), panels => [ Plack::Debugger::Panel::DBIC::QueryLog->new, # ... other Panels ] ); my $debugger_app = Plack::App::Debugger->new( debugger => $debugger ); builder { mount $debugger_app->base_url => $debugger_app->to_app; mount '/' => builder { enable $debugger_app->make_injector_middleware; enable $debugger->make_collector_middleware; $app; } };
This module provides a DBIC QueryLog panel for Plack::Debugger with query alaysis performed by DBIx::Class::QueryLog::Analyzer (by default).
For full details of how to setup Catalyst to use this panel and also for a full background of the design of this module see https://metacpan.org/pod/Plack::Middleware::Debug::DBIC::QueryLog which this module steals heavily from.
Nowhere near enough docs and no tests so expect something to break somewhere.
This is currently 'works for me' quality.
Please report bugs via:
https://github.com/SysPete/Plack-Debugger-Panel-DBIC-QueryLog/issues
Plack::Debugger, Plack::Middleware::Debug::DBIC::QueryLog, Dancer2::Plugin::Debugger::Panel::DBIC::QueryLog.
John Napiorkowski, <jjnapiork@cpan.org> for Plack::Middleware::Debug::DBIC::QueryLog from which most of this module was stolen.
<jjnapiork@cpan.org>
Peter Mottram (SysPete), <peter at sysnix.com>
<peter at sysnix.com>
Copyright 2016 Peter Mottram (SysPete).
This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.
See http://dev.perl.org/licenses/ for more information.
To install Plack::Debugger::Panel::DBIC::QueryLog, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Plack::Debugger::Panel::DBIC::QueryLog
CPAN shell
perl -MCPAN -e shell install Plack::Debugger::Panel::DBIC::QueryLog
For more information on module installation, please visit the detailed CPAN module installation guide.