I'd like to log the output of a command to stdout
as well as to a log file. I've got Cygwin installed and I'm trying to use the tee
command to accomplish this.
devenv mysolution.sln /build myproject "Release|Win32" | tee build.log
Trouble is that tee
seems to insist on waiting for the end of file before outputting anything to either stdout
or the log file. This takes away the point of it all, which is to have a log file for future reference, but also some stdout
logging so I can easily see the build progress.
tee
's options appear to be limited to --append
, --ignore-interrupts
, --help
, and --version
. So is there another method to get to what I'm trying to do?
This should definitely not be happening - it would render tee nearly useless. Here's a simple test that I wrote that puts this to the test, and it's definitely not waiting for eof.
Write your own! (The point here is that the autoflush (
$|
) setting is turned on, so every line seen is flushed straight away. This may perhaps be what the realtee
command lacked.)You can call the script anything you want. I call it
perlmilktee
! :-PYou can output to the file and tail -f the file.
devenv mysolution.sln /build myproject "Release|Win32" > build.log &
tail -f build.log