Scroll to navigation

ANNOTATE-OUTPUT(1) General Commands Manual ANNOTATE-OUTPUT(1)

NAME

annotate-output - annotate program output with time and stream

SYNOPSIS

annotate-output [options] program [args ...]

DESCRIPTION

annotate-output will execute the specified program, while prepending every line with the current time and O for stdout and E for stderr.

OPTIONS

+FORMAT
Controls the timestamp format, as per date(1). Defaults to "%H:%M:%S".
Display a help message and exit successfully.

EXAMPLE

$ annotate-output make
21:41:21 I: Started make
21:41:21 O: gcc -Wall program.c
21:43:18 E: program.c: Couldn't compile, and took me ages to find out
21:43:19 E: collect2: ld returned 1 exit status
21:43:19 E: make: *** [all] Error 1
21:43:19 I: Finished with exitcode 2

BUGS

Since stdout and stderr are processed in parallel, it can happen that some lines received on stdout will show up before later-printed stderr lines (and vice-versa).

This is unfortunately very hard to fix with the current annotation strategy. A fix would involve switching to PTRACE'ing the process. Giving nice a (much) higher priority over the executed program could however cause this behaviour to show up less frequently.

The program does not work as well when the output is not linewise. In particular, when an interactive program asks for input, the question might not be shown until after you have answered it. This will give the impression that the annotated program has hung, while it has not.

SEE ALSO

date(1)

SUPPORT

This program is community-supported (meaning: you'll need to fix it yourself). Patches are however appreciated, as is any feedback (positive or negative).

AUTHOR

This manual page was written by Jeroen van Wolffelaar <jeroen@wolffelaar.nl> and can be redistributed under the terms of the GPL version 2. The annotate-output script itself was re-written by Johannes Schauer Marin Rodrigues <josch@debian.org> and can be redistributed under the terms of the Expat license.

Debian Utilities DEBIAN