f strawberry perl 寫windows event logs ~ 迪貝之家

strawberry perl 寫windows event logs

 

perl 在windows平台上要去寫log
大概都是透過Win32模組吧~~
網路上也有個人說
裝個cygwin
但營運系統怎麼可能放這東西
哈~~
1. Win32::EventLog
 use strict;
use warnings;
 use Win32::EventLog;
   my $eventLog = Win32::EventLog->new('MyProgram');

   my %eventRecord = (
           'Category' => 0, #NULL,
           'EventID' => 0,
           'EventType' => EVENTLOG_ERROR_TYPE,
           'Strings' => 'Test.',
           'Data' => 'Test.',
           );

   $eventLog->Report(\%eventRecord);
   $eventLog->Close();

Win32::EventLog
2. Win32::OLE
它的方式是叫起window host shell(WSH)
來傳遞訊息到event log裏頭
use strict;
use Win32::OLE;

my ($app)=Win32::OLE->new("WScript.Shell", sub {$_[0]->Quit;})  or die "Can't start Shell", Win32::OLE::LastError();

$app->LogEvent(1,"Replication Delay!");

Win32::OLE
我應該會採用第二種
不會造成confuse