lucagrulla / node-tail

The zero dependency Node.js module for tailing a file
https://www.lucagrulla.com/node-tail/
MIT License
467 stars 75 forks source link
coffeescript logs no-dependencies nodejs npm-package tail

Tail

The zero dependency Node.js module for tailing a file

NPM

license npm npm

Made with ❤️ by Luca Grulla

  1. TOC {:toc}

Installation

npm install tail

Use

Tail = require("tail").Tail;

tail = new Tail("fileToTail");

tail.on("line", function(data) {
  console.log(data);
});

tail.on("error", function(error) {
  console.log("ERROR: ", error);
});

If you want to stop tail:

tail.unwatch()

To start watching again:

tail.watch()

Configuration

The only mandatory parameter is the path to the file to tail.

var fileToTail = "/path/to/fileToTail.txt";
new Tail(fileToTail)

If the file is missing or invalid Tail constructor will throw an Exception and won't initialize.

try {
  new Tail("missingFile.txt")
} catch (ex) {
  console.log(ex)
}

Optional parameters can be passed via a hash:

var options= {separator: /[\r]{0,1}\n/, fromBeginning: false, fsWatchOptions: {}, follow: true, logger: console}
new Tail(fileToTail, options)

Constructor parameters

Emitted events

Tail emits two events:

tail.on("line", (data) => {
  console.log(data)  
})
tail.on("error", (err) => {
  console.log(err)  
})

The error emitted is either the underlying exception or a descriptive string.

How to contribute

Node Tail code repo is here Tail is written in ES6. Pull Requests are welcome.

History

Tail was born as part of a data firehose. Read more about that project here. Tail originally was written in CoffeeScript. Since December 2020 it's pure ES6.

License

MIT. Please see License file for more details.