该脚本调用了Tclx中的dup命令
package require Tclx
set fileid ""
proc log {msg} {
global fileid
if {$fileid == ""} {
puts stdout "$msg"
} else {
puts $fileid "$msg"
}
}
proc proc_name {} {
log "a1##########"
sleep 10
log "a2##########"
sleep 10
log "a3##########"
sleep 10
log "a4##########"
sleep 10
log "a5##########"
sleep 10
log "a6##########"
}
proc run_proc {} {
#global fileid
if {[catch {exec killall -9 tail} result]} {
puts "error message:$result"
}
set fileid [open run.log w]
exec tail -f run.log &
#fcntl $fileid NOBUF 1
fconfigure $fileid -buffering none
dup $fileid stdout
dup $fileid stderr
proc_name
close $fileid
sleep 2
if {[catch {exec killall -9 tail} result]} {
puts "error message:$result"
}
}
run_proc
任何形式的转载,请写明出处:
http://blog.youkuaiyun.com/clhon
本文介绍了一种使用Tclx库来实现自动化测试中的日志记录方法。通过定义`log`和`proc_name`过程,将消息打印到标准输出或指定文件。在`run_proc`过程中,创建`run.log`文件并使用`tail -f`实时跟踪日志,同时将日志输出重定向到标准输出和错误输出,确保测试过程中的信息能够被有效捕获和跟踪。
2680

被折叠的 条评论
为什么被折叠?



