RSS Git Download  Clone
Raw Blame History
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;