我想在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中跟踪日志文件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)