Next: News, Previous: Out-of-date determination, Up: goredo [Index]
stderr
of the running targets can be kept on the disk by
specifying -k option (or by setting $REDO_LOGS=1
environment variable) to redo
. You can simultaneously
use also -s option ($REDO_SILENT=1
environment variable)
to silence stderr
output, but still keeping it on the disk for
possible further debug investigation. Only the latest build is
kept, previous one is overwritten.
$ redo -xx -k -s build-the-whole-huge-project
Logs are stored in corresponding .redo/tgt.log file. Each line of
it is prefixed with TAI64N
timestamp, that you can decode with tai64nlocal
utility from
daemontools, or similar one:
go install go.cypherpunks.su/tai64n/v3/cmd/tai64nlocal
.
When -k is in use, all environment variables, working directory, command line arguments, start/finish times, duration, participated PIDs, return codes are also saved in corresponding .redo/tgt.log.reg file.
You can view any target’s output with redo-log
command
(possibly piping to tai64nlocal
). -c option also
shows how exactly it was started, when started/finished and how long did
it take.
-r option enables recursive serialized indented output. When
you run redo
in parallel, then all stderr
(if no
-silence was enabled) is printed as it appears, mixing output
from all commands, that is hard to read and investigate. Serialized
redo-log
output rearranges output. I will take example from
original apenwarr’s idea article.
Serialized output will look like this:
$ redo-log -r A A: ...A stuff... A: redo-ifchange J J: > redo J J: > ...J stuff... J: > redo-ifchange X Y X: > > redo X X: > > ...X stuff... X: > > done X J: > > redo Y Y: > > ...Y stuff... Z: > > > redo Z Z: > > > ...Z stuff... Z: > > > done Z Y: > > ...more Y stuff... Y: > > done Y J: > ...more J stuff... J: > done J A: ...more A stuff...
It will output depth first logs. It can rearrange some "events" (redo invocations): failed targets will be at the very end, because they are the most interesting ones for the human.
Pay attention that recursive output is more CPU hungry. Single target
output is literally copying of .redo/tgt.log file to stdout
.
Next: News, Previous: Out-of-date determination, Up: goredo [Index]