Report write to logfile Tcl tk

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
  }
}

posted @ 2011-04-15 00:12  greencolor  阅读(222)  评论(0)    收藏  举报