Register receiver to be called with line-delimited chunks of log data.
The callable is invoked as receiver(stream,chunk), where the stream is indicated by a single character, or None for logs without streams.
The chunk is a single string containing an arbitrary number of log lines, and terminated with a newline.
When the logfile is finished, receiver will be invoked with None for both arguments.

The callable cannot return a Deferred.
If it must perform some asynchronous operation, it will need to handle its own Deferreds, and be aware that multiple overlapping calls may occur.

Note that no "rewinding" takes place: only log content added after the call to subscribe will be supplied to receiver.

This class handles logs containing three interleaved streams: stdout, stderr, and header.
The resulting log maintains data distinguishing these streams, so they can be filtered or displayed in different colors.
This class is used to represent the stdio log in most steps.