Can't locate DateTime/Format/Parse.pm in @INC (you may need to install the DateTime::Format::Parse module) (@INC contains: /root/.cpan /usr/local/bin /usr/local/lib/perl5/site_perl/mach/5.20 /usr/local/lib/perl5/site_perl /usr/local/lib/perl5/5.20/mach /usr/local/lib/perl5/5.20 /usr/local/lib/perl5/site_perl/5.20 /usr/local/lib/perl5/site_perl/5.20/mach .) at /usr/local/test/LogfileMonitor/LogfileMonitor.pl line 8.
####
package LogfileMonitor;
use strict;
use warnings;
use IO::File;
use File::ReadBackwards;
use DateTime;
use DateTime::Format::DateParse;
use LWP::UserAgent;
#Don't forget trailing slash.
my $filePath = '/var/log/';
my @fileNames = ('gateways.log', 'system.log');
my $slackHandle = my handle
my $token = my token
# main Function
sub LFM(){
my $run = 1;
my $test = 0;
while($run && $test < 2){
for(my $i = 0; $i <= @fileNames; $i++){
sendMessage($slackHandle, scanFile($filePath,$fileNames[$i]));
sleep(300);
}
$test++;
}
}
# get relevant Lines from Logfile
sub scanFile(){
my $currentTime = DateTime->now(time_zone => "local");
my $handle = File::ReadBackwards->new($_[0] . $_[1]);
#print $handle;
print "\n";
print $_[0].$_[1];
print "\n\n\n";
for(my $i = 0; $i <= 15; $i++) {
my $line = $handle->readline;
if(defined $line) {
my $messageTime = substr($line, 0, 15);
my $messageAgent = substr($line, 16, index($line, ':'));
my $message = substr($line, index($line, ':', 16));
$messageTime = DateTime::Format::DateParse->parse_datetime($messageTime);
my $diff = $currentTime->substract($messageTime);
if ($diff->minutes() <= 5){
return $line;
} else {
return undef;
}
}
}
}
# push Message to Slack
sub sendMessage(){
my $Messages = $_[1];
#my $slackHandle = @_[0];
#my $userAgent = LWP::UserAgent->new();
#my $data = qq{{ "text" : "@_[1]"}};
#my $httpRequest = HTTP::Request->new(POST=>$slackHandle);
#$httpRequest->header('content-type' => 'application/json');
#$httpRequest->content($data);
#my $response = $userAgent->request($httpRequest);
#if ($response->is_success){
# print $response->decoded_content;
#}
#else
#{
# print $response->code;
# print $response->message;
#}
print $Messages;
}
#Call main Function
LFM();
####
Can't call method "time_zone" on an undefined value at /usr/local/lib/perl5/site_perl/mach/5.20/DateTime.pm line 1376.