node package manager

docker-loghose

docker-loghose

Build Status

Collect all the logs from all docker containers

Install

As a command line tool:

npm install docker-loghose -g

Embedded usage

npm install docker-loghose --save

Embedded Usage

var loghose = require('docker-loghose')
var through = require('through2')
var opts = {
  json: false, // parse the lines that are coming as JSON 
  docker: null, // here goes options for Dockerode 
  events: null, // an instance of docker-allcontainers 
  newline: false, // Break stream in newlines 
  // Logs from the container, running docker-loghose are excluded by default. 
  // It could create endless loops, when the same logs are written to stdout... 
  // To get all logs set includeCurrentContainer to 'true' 
  includeCurrentContainer: false, // default value: false 
  // the following options limit the containers being matched 
  // so we can avoid catching logs for unwanted containers 
  matchByName: /hello/, // optional 
  matchByImage: /matteocollina/, //optional 
  skipByName: /.*pasteur.*/, //optional 
  skipByImage: /.*dockerfile.*/ //optional 
}
loghose(opts).pipe(through.obj(function(chunk, enc, cb) {
  this.push(JSON.stringify(chunk))
  this.push('\n')
  cb()
})).pipe(process.stdout)

Command Line Usage

docker-loghose [--json] [--help]
               [--newline]
               [--matchByImage REGEXP] [--matchByName REGEXP]
               [--skipByImage REGEXP] [--skipByName REGEXP]

Docker Usage

docker run --rm -v /var/run/docker.sock:/var/run/docker.sock matteocollina/docker-loghose

Data format

{
  v: 0,
  id: "3324acd73ad5",
  image: "myimage:latest",
  name: "mycontainer-name"
  time: 1454928524601,
  line: "This is a log line" // this will be an object if opts.jon is true 
}

Acknowledgements

This project was kindly sponsored by nearForm.

License

MIT