linux – 如何在TCL中跟踪日志文件

linux – 如何在TCL中跟踪日志文件,第1张

概述假设有一个文件log.txt,并且会永久地附加某种日志. 我想在TCL环境中跟踪该文件. 我试过这个但是没用. set log [open log.txt a]for { } { true } { update; after 1000 } { # expected to get here the appended part read $log seek $log 0 假设有一个文件log.txt,并且会永久地附加某种日志.

我想在TCL环境中跟踪该文件.

我试过这个但是没用.

set log [open log.txt a]for { } { true } { update; after 1000 } {    # expected to get here the appended part    read $log    seek $log 0 end}

是否可以通过相同的文件句柄日志读取修改后的文件,或者我必须关闭并重新打开文件log.txt?

在TCL中是否有一种等效的linux命令tail -f?

解决方法 只需使用尾巴.它更了解您如何处理复杂的案例(您可以查看其来源).

在我的一个项目中,我有类似的东西来监视由专有工具生成的跟踪文件:

set fd [open [List | tail --follow=name --retry --lines 0 $opt(trace) 2>@1]]chan event $fd readable [List FollowTrace $fd]proc FollowTrace fd {  if {[gets $fd line] < 0} {    set code [catch {close $fd} err]    if {$code == 0} {      set ::result 0    } else {      puts stderr $err      set ::result 1    }    return  }  switch -regexp -matchvar parts -- $line {    {Tm_Session::Open.*filename=([^,]+)} {       TryMakeLock [FullPathname [lindex $parts 1]]     }     {Tm_Session::Close.*filename=([^,]+)} {        StartUpload [lindex $parts 1]     }  }}

一般的想法是,您在给定文件上生成尾部,然后输入事件循环并逐行处理尾部输出.

总结

以上是内存溢出为你收集整理的linux – 如何在TCL中跟踪日志文件全部内容,希望文章能够帮你解决linux – 如何在TCL中跟踪日志文件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1031369.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存