linux – 如何在TCL中跟踪日志文件
发布时间:2020-12-14 02:01:45 所属栏目:Linux 来源:网络整理
导读:假设有一个文件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环境中跟踪该文件. 我试过这个但是没用. 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] } } } 一般的想法是,您在给定文件上生成尾部,然后输入事件循环并逐行处理尾部输出. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |