加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Perl 访问 Windows 的事件日志

发布时间:2020-12-15 21:08:34 所属栏目:大数据 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 #!/usr/bin/perl -wuse Win32::EventLog;$area = 'System'; # Default$host = $ENV{'ComputerName'};$log_handle = Win32::EventLog-new($area,$host)

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

#!/usr/bin/perl -w
use Win32::EventLog;
$area = 'System';  # Default
$host = $ENV{'ComputerName'};

$log_handle = Win32::EventLog->new($area,$host)or die "Cannot open $area event log $!n";

$log_handle->GetOldest($record_base) or die "Error getting oldest record,$!n";

$log_handle->GetNumber($num_records) or die "Error getting number records,$!n";

for ($rec = 0; $rec < $num_records; $rec++ ) {
    $log_handle->Read(EVENTLOG_FORWARDS_READ|EVENTLOG_SEEK_READ,$record_base + $rec,%hash)or die "Cannot read event log entry $rec,$!n";
    print_error_log( %hash );
}

$log_handle->Close();

sub print_error_log {
    my($hash_ref) = $_[0];
    my(%hash) = %$hash_ref;
    my($time_str);
    my($time_value);

    if ( exists( $hash{'EventType'} ) ) {
        if ( $hash{'EventType'} eq EVENTLOG_ERROR_TYPE ) {
            my($source) = $hash{'Source'};
            $time_value = $hash{'TimeGenerated'};
            $time_str = localtime( $time_value );
            my($rec_number) = $hash{'RecordNumber'};
            my($msg) =Win32::EventLog::GetMessageText( %hash );
            if (defined($msg) ) {
                print "    $rec_number $source $time_strn";
                print "$msgn";
            } else {
                # Print raw strings used to create message.
                print "    $rec_number $source $time_strn";
                print "$hash{'Strings'}";
            }
        }
    }
}

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读