The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

DBIx::Class::QueryLog::Conditional - Disable QueryLogger instead of all query logging

VERSION

version 0.001000

SYNOPSIS

 my $ql = DBIx::Class:::QueryLog->new;
 $schema->storage->debugobj(
    DBIx::Class:::QueryLog::Tee->new(
         loggers => {
            new      => $ql,
            original => DBIx::Class::QueryLog::Conditional->new(
               logger => $self->storage->debugobj,
               enabled_method => sub { $ENV{DBIC_TRACE} },
            ),
         },
    ),
 );
 $schema->storage->debug(1);

Now the original storageobj is enabled and disabled based on the standard env var.

DESCRIPTION

When you use DBIx::Class::QueryLog::Tee you will likely find that suddenly you are logging everything. Before ::Tee came along your console was inconsolable, dispondant; you never heard from it again. After using ::Tee suddenly your silent, morose query log became manic. It woudln't shut up! This was not what you bargained for...

DBIx::Class::QueryLog::Conditional is part of The Final Equation. Instead of no noise, or all noise, ::Conditional is the bear that gives you just the right amount and temperature of porridge.

METHODS

new

Requires a logger that must be a "LOGGER". Can optionally take either enabled or enabled_method.

enabled is a simple bool, defaulting to true.

enabled_method is a code reference called as a method. It defaults to checking "enabled". A good alternate is proposed in the "SYNOPSIS".

enabled

A simple helper attribute. Defaults to true, can be set to false to turn off your logger via code.

LOGGER

A logger is defined as an object that has the following methods:

   txn_begin txn_commit txn_rollback
   svp_begin svp_release svp_rollback
   query_start query_end

AUTHOR

Arthur Axel "fREW" Schmidt <frioux+cpan@gmail.com>

COPYRIGHT AND LICENSE

This software is copyright (c) 2014 by Arthur Axel "fREW" Schmidt.

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