Go library to parse the Docker Logs stream
Go
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.gitignore
.travis.yml
LICENSE
README.md
example_test.go
reader.go
reader_test.go

README.md

dlog

Go library to parse the binary Docker Logs stream into plain text.

GoDoc Build Status Coverage Status Go Report Card

dlog offers a single method: NewReader(r io.Reader) io.Reader. You are supposed to give the response body of the /containers/<id>/logs. The returned reader strips off the log headers and just gives the plain text to be used.

Here is how a log line from container looks like in the the raw docker logs stream:

01 00 00 00 00 00 00 1f 52 6f 73 65 73 20 61 72  65 ...
│  ─────┬── ─────┬─────  R  o  s  e  s     a  r   e ...
│       │        │
└stdout │        │
        │        └─ 0x0000001f = log message is 31 bytes
      unused

You can get the logs stream from go-dockerclient's Logs() method, or by calling the container logs endpoint direclty via the UNIX socket directly.

See example_test.go for an example usage.

This library is written in vanilla Go and has no external dependencies.


Licensed under Apache 2.0. Copyright 2017 Ahmet Alp Balkan.