Posted to tcl by aspect at Thu Oct 29 22:16:38 GMT 2015view pretty
namespace eval tee { proc initialize args {info procs} proc finalize args {} proc clear args {} proc flush {x h} {chan flush $x} proc write {x h data} { puts -nonewline $x $data chan flush $x return $data } namespace export * namespace ensemble create -parameters x } namespace eval redir { proc initialize args {info procs} proc finalize args {} proc clear args {} proc flush {x h} {chan flush $x} proc write {x h data} { uplevel 1 $x [list $data] return "" } namespace export * namespace ensemble create -parameters x } package require Tk pack [text .t] set fd [open log.txt w] chan push stdout [list tee $fd] chan push stderr [list redir {.t insert end}] puts "Hello world!" puts stderr "This is not right"