#!/usr/bin/wish # (C) 1997 Drow http://devplanet.fastethernet.net # proc loadsyslog {details} { tk_dialog .blah "Loading file" "About to load /var/log/syslog. Details level set to $details" info 0 OK set fd [open "/var/log/syslog" r] .list1 delete 0 end while {[eof $fd]!=1} { gets $fd line if {$details>(-1) && [string first "syslog" [lindex $line 4]]>(-1)} { .list1 insert end "[lindex $line 0] [lindex $line 1] [lindex $line 2] [lrange $line 4 end]" } elseif {$details>(-1) && [string first "sendmail" [lindex $line 4]]>(-1)} { .list1 insert end "[lindex $line 0] [lindex $line 1] [lindex $line 2] [lrange $line 4 end]" } elseif {$details>(-1) && [string first "telnet" [lindex $line 4]]>(-1)} { .list1 insert end "[lindex $line 0] [lindex $line 1] [lindex $line 2] [lrange $line 4 end]" } elseif {$details>(-1) && [string first "pop" [lindex $line 4]]>(-1)} { .list1 insert end "[lindex $line 0] [lindex $line 1] [lindex $line 2] [lrange $line 4 end]" } elseif {$details>(0) && [string first "in." [lindex $line 4]]>(-1)} { .list1 insert end "[lindex $line 0] [lindex $line 1] [lindex $line 2] [lrange $line 4 end]" } elseif {$details>(1)} { .list1 insert end "[lindex $line 0] [lindex $line 1] [lindex $line 2] [lrange $line 4 end]" } } close $fd } set details 1 wm title . "X syslog interface 1.0" scrollbar .scroll1 -command {.list1 yview} scrollbar .scroll2 -command {.list1 xview} -orient horizontal listbox .list1 -yscroll ".scroll1 set" -xscroll ".scroll2 set" -width 70 -height 20 frame .menubar -relief raised menubutton .menubar.opt -menu .menubar.opt.menu -underline 0 -text Configuration menu .menubar.opt.menu -tearoff 0 .menubar.opt.menu add command -label "Clear console" -command {.list1 delete 0 end} .menubar.opt.menu add command -label "View log details level 0 (syslogd, sendmail, telnet, pop3)" -command {loadsyslog 0} .menubar.opt.menu add command -label "View log details level 1 (syslogd, sendmail, in.*, kernel)" -command {loadsyslog 1} .menubar.opt.menu add command -label "View log details level 2 (all)" -command {loadsyslog 2} .menubar.opt.menu add command -label "View only 1 service's log" -command {loadservicelog} .menubar.opt.menu add command -label "About Xsyslog" -command {tk_dialog .blah "Xsyslog" "(C) 1997 Drow \nhttp://devplanet.FastEthernet.net" info 0 OK} .menubar.opt.menu add separator .menubar.opt.menu add command -label "Quit" -command {exit} pack .scroll1 -side right -fill y pack .scroll2 -side bottom -fill x pack .menubar -side top -fill x pack .menubar.opt -side left pack .list1 -side left -fill both -expand 1 loadsyslog $details proc loadservicelog args { catch {destroy .service} toplevel .service wm title .service "Select service" label .service.l -text "Enter service to look for (ie. telnet)" entry .service.e -textvariable service button .service.b -text "OK" -command {loadit $service} pack .service.l .service.e .service.b -side top } proc loadit {service} { catch {destroy .service} set fd [open "/var/log/syslog" r] .list1 delete 0 end while {[eof $fd]!=1} { gets $fd line if {[string first $service [lindex $line 4]]>(-1)} { .list1 insert end "[lindex $line 0] [lindex $line 1] [lindex $line 2] [lrange $line 4 end]" } } close $fd }