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;