stderred hooks on write() and a family of stream functions (fwrite, fprintf,
error…) from libc in order to colorize all stderr output that goes to
terminal thus making it distinguishable from stdout. Basically it wraps text
that goes to file with descriptor “2” with proper ANSI escape codes making text
red.
It’s implemented as a shared library and doesn’t require recompilation of
existing binaries thanks to preload/insert feature of dynamic linkers.
It’s supported on Linux (with LD_PRELOAD), FreeBSD (also LD_PRELOAD) and
OSX (with DYLD_INSERT_LIBRARIES).