# SQL::Interp prints DEBUG to STDERR # whether TRACE_SQL is enabled # SQL::Interp.pm: # my $trace_sql_enabled = $ENV{TRACE_SQL} || 0; # $trace_sql_enabled and print STDERR "DEBUG:interp[sql=$sql,bind=". join(':', @bind) . "]\n"; # TRACE_SQL=1 perl my_script.pl use strict; use warnings; use feature 'say'; use DBIx::LogAny; use DBIx::Simple; use Log::Any::Adapter ('File', './log_file.log'); use SQL::Interp; # connect to your DB using DBIx::LogAny my $dbh = DBIx::LogAny->connect('dbi:SQLite:dbname=file.dat'); # Using an existing database handle (DBIx::LogAny) for DBIx::Simple my $db = DBIx::Simple->connect($dbh); # make your query $db->iquery('SELECT 1')->into(my $one); say $one; #### TRACE_SQL=1 perl my_script.pl DEBUG:interp[sql=SELECT 1,bind=] 1 #### [Thu Dec 17 01:15:15 2020] connect(0): dbi:SQLite:dbname=file.dat, , $attr = undef; [Thu Dec 17 01:15:15 2020] DBI: 1.643 , DBIx::LogAny: 0.06, Driver: SQLite(1.66) [Thu Dec 17 01:15:15 2020] prepare(0.0): 'SELECT 1' [Thu Dec 17 01:15:15 2020] execute(0.0) [Thu Dec 17 01:15:15 2020] finish(0.0) [Thu Dec 17 01:15:15 2020] finish(0.0)