【问题标题】:Perl - real time read log filePerl - 实时读取日志文件
【发布时间】:2013-09-10 10:50:31
【问题描述】:

除了使用模块 File::Tail(用于从持续更新的文件中读取的 Perl 扩展)o while 循环.. 根据您的说法,实时读取大日志文件的最佳方法是什么?

【问题讨论】:

    标签: perl logging real-time tail


    【解决方案1】:

    读取文件直到eof,休眠一段时间,清除文件句柄上的eof标志,然后再次尝试从中读取,

    # open $fh..
    
    while (1) {
        while (my $line = <$fh>) {
            # $line ...
        }
        # eof reached on $fh
        sleep 1;
        # clear eof flag on $fh
        seek($fh, 0, 1);      
    }
    

    您可以使用Time::HiRes 模块缩短sleep

    【讨论】:

    • ... 或使用 select undef, undef, undef, $seconds(其中 $seconds 可能是几分之一秒)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-09
    相关资源
    最近更新 更多