1. A method by a computer comprising: for each of a plurality of log records received from a host machine node as part of a log stream being output from a software source via the host machine node: identifying a template identifier within a template repository for a template string matching an invariant string of the log record; and identifying an attribute identifier in an attribute repository for an attribute string matching a variant string of the log record; partitioning the log records into a plurality of batches, each of the plurality of batches comprising a plurality of log records, each of the plurality of batches defined by a data structure comprising: a batched log record identifier that uniquely identifies the batch relative to the other batches; the template identifier for each of the plurality of log records within the batch; the attribute identifier for each of the plurality of log records within the batch; and a list of timestamps of the plurality of log records within the batch; and for each batch of the plurality of batches, storing the data structure for the batch into a log repository in a computer readable medium, the storing comprising: for each batch of the plurality of batches, performing data compression on the data structure for the batch to generate a compressed data structure; and for each batch of the plurality of batches, separately communicating, through a data network to a data server, an instruction to write the compressed data structure for the batch into memory of a log repository.