Send text output of scripts and batchfiles to network with a free open source command line tool for Windows, Mac OS X and Linux.
sfk tolog [-help]sfk tonetlog [server[:port]]|[port]
Send text output of a command to terminal, and/or append
it to a log file, and/or send it to a network text viewer.
The log target(s) can be specified in the following ways:
1. by defining an environment variable:
set SFK_LOGTO=net[:hostname[:port][,raw]set SFK_LOGTO=file:mylog.txtset SFK_LOGTO=term
where targets can be combined like:
set SFK_LOGTO=term,file:log.txt,net,duplex
2. by using tonetlog to force sending by network.
in that case, a hostname and port can be specified
as parameters. the default is to send to localhost.
If no log target is specified all text goes to terminal.
A recommended GUI tool to view and filter network text
is Depeche View. Type sfk getdv to download, then run
the tool by dview -net for instant net text display.
It runs with Windows, and on Linux/Mac using WINE.
parameters (with tonetlog only)
server IP or name of target machine to send text to.
port target port, default is 21323 (SFK UDP Text).
you may also type a port without "server:".
options
-h[elp] print this help text (same as "sfk netlog").
-duplex request a reply for each message sent.
much slower, but it is made sure that the
receiver actually receives all text, which
is not sure without -duplex.
-timeout=n with -duplex: time to wait for a reply.
default is 1000 msec.
-delay=n if not using -duplex then wait so many msec
after each message sent (default is 10).
delay is required with longer text as
receiver may fail to cache all messages.
-raw send raw UDP text without sfktxt header.
cannot be combined with -duplex.
-toiso[=c] converts utf8 to iso-8859-1
with default character c for non-8bit codes.
-nolf do not append LF after single line text.
-usecr append CR instead of LF after single line text.
-clear clear target log. cannot be used with -raw.
-verbose tell log target if taken from environment.
-recsize=n UDP max message size, default is 1000 bytes.
SFK_LOGTO accepted fields
term,file,net,raw,duplex,timeout,delay,toiso,nolf
Send And Forget versus Duplex Transfer
By default, SFK netlog sends text without checkingif it arrives at receiver. This is the way that
plain UDP works, and it makes sense for scripts
that shall NOT slow down or even stop just because
the receiver is too slow, or not present at all.
However, it is NOT guaranteed that all text arrivesin complete, or in the same order as sent.
If text is lost you may increment the -delay, or use
the -duplex option. With duplex, however,
non listening or slow receivers will cause delays
and error messages and may stop command execution.
Working process example: remote compile scripts
Type "sfk netlog -full" for example scripts how to run
batch files on remote machines and view their output.
see alsosfk fromnet -help - print incoming network text
sfk udpsend - send UDP text and binary messages
sfk udpdump - print incoming raw UDP messages
sfk append - append text output to a file
sfk echo - for the list of possible colors
sfk view - more about the text viewer program
sfk samp cppnetlog - sample C++ code for sending text
sfk samp javanetlog - sample Java code for sending text
web referencehttp://stahlworks.com/sfk-netlogexamplessfk echo "[Red]foo[def] and [Blue]bar[def]" +tonetlog
sends colored text to a viewer on the same machine.
Red with big 'R' sends bright color, 'r'ed sends dark.
Type sfk getdv then dview -net to download
and run the Depeche View network text viewer tool.
dir | sfk tonetlog 192.168.1.100
send output of a folder listing to machine .100
set SFK_LOGTO=term,net:192.168.1.100cl mysrc.c 2>&1 | sfk tolog
sends output of a command "gcc" as UDP text both
to terminal and to a text viewer running on .100
set SFK_LOGTO=term,net,duplex,timeout:3000cl mysrc.c 2>&1 | sfk tolog
similar to above, but sends output to a viewer on the
local machine, asking for receipts within 3 seconds.
set SFK_LOGTO=file:log1.txt,net:192.168.1.30:5000,rawsfk list mydir +tolog
append filename list of folder mydir to log1.txt and
send it as raw network text to machine .30 port 5000.
dview -net:3000,ip
runs dview on port 3000 with sender ip display.
sfk tail -f mylog.txt +tonetlog .229:3000 +loop
whenever mylog.txt changes, send changed text lines
to a machine ending with .229 in the same subnet
on port 3000.
source code examplesSend network text in C++Send network text in Java