proc Report { text args }
{
set logfile [GetSystemVar SESSION_LOG]
if { $logfile != "" } {
WriteFile $logfile "$text"
}
}
proc WriteFile { filename text args } {
set file_mode "a+"
for { set i 0 } { $i < [llength $args] } { incr i } {
set arg [lindex $args $i]
switch -regexp -- $arg {
overwrite {
set file_mode "w"
}
}
}
if { ![OpenFile $filename fo $file_mode] } { return 0 }
if {[catch {puts $fo "$text"}]} { return 0 }
return [CloseFile $fo]
}
proc OpenFile { filename channel {mode a+ } } {
upvar $channel f
if {[file isdirectory $filename]} { return 0 }
return [expr {1 - [catch { open $filename $mode } f ]} ]
}
proc CloseFile { f {filename ""} } {
if { [catch "close $f" ] } {
WarningMessage "Error closing file $filename
Probably due to disk being full or exceeding disk quota"
return 0
} else {
return 1
}
}