Go library to parse the binary Docker Logs stream into plain text.
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.