[![Build Status](https://travis-ci.org/tokuhirom/DBIx-Tracer.svg?branch=master)](https://travis-ci.org/tokuhirom/DBIx-Tracer)
# NAME

DBIx::Tracer - Easy tracer for DBI

# SYNOPSIS

    use DBIx::Tracer;

    my $tracer = DBIx::Tracer->new(
        sub {
            my %args = @_;
            say $args{dbh};
            say $args{time};
            say $args{sql};
            say "Bind: $_" for @{$args{bind_params}};
        }
    );

# DESCRIPTION

DBIx::Tracer is easy tracer for DBI. You can trace a SQL queries without 
modifying configuration in your application.

You can insert snippets using DBIx::Tracer, and profile it.

# GUARD OBJECT

DBIx::Tracer uses Scope::Guard-ish guard object strategy.

`DBIx::Tracer->new` installs method modifiers, and `DBIx::Tracer->DESTROY` uninstall method modifiers.

You must keep the instance of DBIx::Trace in the context.

# METHODS

- DBIx::Tracer->new(CodeRef: $code)

        my $tracer = DBIx::Tracer->new(
            sub { ... }
        );

    Create instance of DBIx::Tracer. Constructor takes callback function, will call on after each queries executed.

    You must keep this instance you want to logging. Destructor uninstall method modifiers.

# CALLBACK OPTIONS

DBIx::Tracer passes following parameters to callback function.

- dbh

    instance of $dbh.

- sql

    SQL query in string.

- bind\_params : ArrayRef\[Str\]

    binded parameters for the query in arrayref.

- time

    Elapsed times for query in floating seconds.

# FAQ

- Why don't you use Callbacks feature in DBI?

    I don't want to modify DBI configuration in my application for tracing.

# AUTHOR

Tokuhiro Matsuno <tokuhirom AAJKLFJEF@ GMAIL COM>

# THANKS TO

xaicron is author of [DBIx::QueryLog](https://metacpan.org/pod/DBIx::QueryLog). Most part of DBIx::Tracer was taken from DBIx::QueryLog.

# SEE ALSO

[DBIx::QueryLog](https://metacpan.org/pod/DBIx::QueryLog)

# LICENSE

Copyright (C) Tokuhiro Matsuno

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