All Projects → ahmetb → dlog

ahmetb / dlog

Licence: Apache-2.0 license
Go library to parse the Docker Logs stream

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to dlog

LogESP
Open Source SIEM (Security Information and Event Management system).
Stars: ✭ 162 (+478.57%)
Mutual labels:  log-collector
ansible-role-pimpmylog
DEPRECATED Ansible Role - Pimp my Log
Stars: ✭ 14 (-50%)
Mutual labels:  log-stream
Fluentd
Fluentd: Unified Logging Layer (project under CNCF)
Stars: ✭ 10,807 (+38496.43%)
Mutual labels:  log-collector
Graylog2 Server
Free and open source log management
Stars: ✭ 5,952 (+21157.14%)
Mutual labels:  log-collector
ansible-fluentd
Provision fluentd log collector
Stars: ✭ 20 (-28.57%)
Mutual labels:  log-collector
HTTPDataCollectorAPI
Azure Log Analytics HTTP Data Collector API wrapper
Stars: ✭ 21 (-25%)
Mutual labels:  log-collector
siemstress
Very basic CLI SIEM (Security Information and Event Management system).
Stars: ✭ 24 (-14.29%)
Mutual labels:  log-collector

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].