Skip to content
forked from ahmetb/dlog

Go library to parse the Docker Logs stream

License

Notifications You must be signed in to change notification settings

crowdsecurity/dlog

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

Go library to parse the Docker Logs stream

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 100.0%