package Local::QueryLogger;
# TODO - apache fastcgi process can't find location of calling apps' logs dir
# creates 2 files, '%d{yyyy_MMdd}_sql.log' with 0660 permissions, another with
# todays date but 644 permissions (apache fastcgi process can't create this one)
use Moo;
use DateTime;
use Data::Printer;
use FindBin qw($Bin); # warn $Bin;
use Log::Dispatch::File::Rolling;
# my $today = DateTime->today->ymd;
my $dispatcher = Log::Dispatch->new;
$dispatcher->add(
Log::Dispatch::File::Rolling->new(
min_level => 'info',
name => 'queries',
# filename => "logs/${today}_sql.log", # will be relative to start script dir
filename => "logs/%d{yyyy_MMdd}_sql.log", # will be relative to start script dir
permissions => 0660,
mode => 'append',
newline => 1,
)
);
=begin # Log::Dispatch::FileWriteRotate:
use Log::Dispatch::FileWriteRotate;
$dispatcher->add(
Log::Dispatch::FileWriteRotate->new(
min_level => 'info',
# will be passed to File::Write::Rotate
dir => '/home/raj/apps',
prefix => 'query',
suffix => '.log',
period => 'daily',
size => 25*1024*1024,
histories => 1000, # 0 keeps no histories
)
);
=cut
sub log {
my ($self, $level, $msg) = @_; # ddp $level; ddp $msg;
$dispatcher->log(level => $level, message => $msg);
}
1;