Flexible default logging.

At the moment it's possible to specify logging (using default configurations) in only one way, which is to supply logfiles={}

This has the disadvantage of streaming data in real time. Not all logs during the build process require realtime streaming.

Another issue is the stdio log, this copies both stdin and stderr to the same log file.

It would be nice to have three specific features added to the default logging mech:

Specify different logfiles for stdin/stderr or other named pipes.

Specify a logfile that should only be uploaded at the _end_ of the build step, whether it fails or succeeds. For example uploading config.status and config.log at the end running ./configure in a gnu autoconf setup.

The ability to specify a callback to filter a log file through. For instance:

Change History (6)

I've got an update to this ticket, when parsing logfiles the callback should have access to stdout,stderr or any other named pipes when parsing the log. Having each log fed in separately wouldn't be viable if you wanted to create inline messages for stderr or named pipes.

Currently LogObservers?? are created in the start method of BuildStep??. This makes it hard to write generic observers that can work with many different steps: it couples things that don't have a strong reason to be coupled.

One way that this could be done is to have a standard factory attribute listing log observer factories & arguments. This would then be called either before or after start (probably after).

I want this for Subunit support polish.

FWIW, I think this is a cool idea, but I don't see it getting done in 0.7.12. I'd love to be proven wrong :)