sidhartha has asked for the wisdom of the Perl Monks concerning the following question:
use Win32::EventLog; use Date::Calc; use Strict; my @epoch = (1970,1,1,7,0,0); my $EventLog = Win32::EventLog->new("Application") or die "Can't open Application Log"; $EventLog->GetOldest($oldest) or die "Can't get number of oldest EventLog record\n"; $EventLog->GetNumber($lastRec) or die "Can't get number of EventLog records\n"; my $lastRecOffset = $oldest + $lastRec - 1; print $oldest . "\n"; print $lastRec . "\n"; print $lastRecOffset . "\n"; while ($lastRecOffset > $oldest ) { $EventLog->Read(EVENTLOG_BACKWARDS_READ|EVENTLOG_SEEK_READ, $lastRecOffset, $hashRef) or die "Can't read EventLog entry #$lastRecOffset\n"; Win32::EventLog::GetMessageText($hashRef); my $seconds = $hashRef->{TimeGenerated}; foreach my $key (keys %$hashRef){ if (lc($key) =~ /time/){ print $key . "\t" . FormatDate($hashRef->{$key}) . "\n"; }else{ print $key . "\t" . $hashRef->{$key} . "\n"; } } $lastRecOffset--; print "\n"; } sub FormatDate { my $seconds = shift; my @generated = Date::Calc::Add_Delta_DHMS(@epoch,0,0,0,$seconds); my $genDate = Date::Calc::Date_to_Text($generated[0],$generated[1] +,$generated[2]); my $ampm = "am"; if ($generated[3]>12){ $generated[3] -= 12; $ampm = "pm"; } return $genDate . " " .$generated[3] . ":" .$generated[4] . ":" .$ +generated[5] . " $ampm"; }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: A question regarding Win32::EventLog
by nerfherder (Monk) on Feb 02, 2005 at 00:29 UTC | |
by sidhartha (Acolyte) on Feb 02, 2005 at 06:34 UTC | |
by barathbr (Scribe) on Feb 02, 2005 at 07:55 UTC | |
by sidhartha (Acolyte) on Feb 02, 2005 at 12:49 UTC |