Using TCL to capture SYSlog (port 514) UDP/TCP? -


i'm looking best way capture network generated syslog on port 514 tcl variable list (using lappend mysyslist $newsyslogentry), or append file (i.e., open "syslog.txt" a)

i suspect need triggered via event every new (port 514) entry (i.e., fileevent $$ readable...) , if possible allow other programs access syslog port?

i believe network syslog traffic udp based (not 100% sure), i've seed udp + tcp syslog capture apps around.

there few syslog client apps available, need simple port 514 recorder in tcl.

i have ideas suggestions appreciated.

for who's interested, i've created udp version here:

#!/usr/local/bin/tclsh package require udp ; # load required udp package  set port 514 ; # default syslog port set logfile "udp_syslog.txt" ; # set log filename log data  # capture udp data here proc udp_triggered {} {     global dg logfile ; # ensure global variables work in procedure     set rcdata [read $dg(udp)] ; # grab udp data within rcdata     set udp_log [open $logfile a] ; # open specified logfile append (auto-creates if not exist)     puts $udp_log $rcdata ; # place udp data line log file     close $udp_log ; # close log file     return }  set dg(udp) [udp_open $port] ; # setup udp capture port fileevent $dg(udp) readable udp_triggered ; # setup event trigger when udp port becomes readable , execute procedure capture data vwait forever ; # activates (fileevent) trigger wait udp data