Logging api

Reviewers:  @bernerdschaefer, @peterbourgon 

First pass at the internals of the logging API.  This is two layers thick.  There is a RingBuffer for log messages, and on top of this is a data structure that implements storage for and operations for each container.  (The RingBuffer probably should have been a separate submit.)

The next piece to be worked on will be the HTTP logging interface.
Superfluous now.


On Tue, Jul 29, 2014 at 4:21 PM, Peter Bourgon <notifications@github.com>
wrote:

> In harpoon-agent/logs.go:
>
> > +	return <- msg.listenerIDResult
> > +}
> > +
> > +// Remove a listener from a containerLog.
> > +func (ls *LogSet) DropListener(containerID ContainerID, listenerID ListenerID) {
> > +	ls.msgs <- &logSetMsg {action: logActionDropListener, containerID: containerID, listenerID: listenerID}
> > +}
> > +
> > +func (ls *LogSet) Exit() {
> > +	ls.msgs <- &logSetMsg {action: logActionExit}
> > +}
> > +
> > +// Processes messages one at a time
> > +func (ls *LogSet) loop() {
> > +	for {
> > +		msg := <- ls.msgs
>
> for msg := range ls.msgs {
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/soundcloud/harpoon/pull/13/files#r15525156>.
>