@mixmaxhq/tail

1.3.0 • Public • Published

Tail

NPM

Author: Luca Grulla - www.lucagrulla.com

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)

Optional parameters can be passed via a hash:

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

Available parameters:

  • separator: the line separator token (default /[\r]{0,1}\n/ to handle linux/mac (9+)/windows)
  • fsWatchOptions: the full set of options that can be passed to fs.watch as per node documentation (default: {})
  • fromBeginning: forces the tail of the file from the very beginning of it instead of from the first new line that will be appended (default: false)
  • startPos: forces the tail from certain position, if set — fromBeginning param will be ignored. (default: null)
  • follow: simulate tail -F option. In the case the file is moved/renamed (or logrotated), if set to true tail will try to start tailing again after a 1 second delay, if set to false it will just emit an error event (default: true)
  • logger: a logger object(default: no logger). The passed logger has to respond to two methods:
    • info([data][, ...])
    • error([data][, ...])
  • useWatchFile: if set to true will force the use of fs.watchFile rather than delegating to the library the choice between fs.watch and fs.watchFile (default: false)
  • encoding: the encoding of the file to tail (default:utf-8)

Emitted events

Tail emits four events:

  • line
function(data){
  console.log(data)
}
  • data
function(data){
  console.log(data)
}
  • error
function(exception){}
  • historicalDataEnd
function(end){
  console.log('Historical data size is', end)
}

Want to fork?

Tail is written in CoffeeScript.

The Cakefile generates the javascript that is then published to npm.

Real world use

Tail was born as part of a data firehose. Read about it here.

License

MIT. Please see License file for more details.

Readme

Keywords

Package Sidebar

Install

npm i @mixmaxhq/tail

Weekly Downloads

1

Version

1.3.0

License

MIT

Unpacked Size

10.8 kB

Total Files

5

Last publish

Collaborators

  • alan-hadyk
  • leonardo-mixmax
  • dmytro.prysiazhnyi
  • laszlovaspal
  • akashbhalla
  • hishank
  • danyloderkach
  • sergey.polyarush
  • jordins
  • eugene.safronov.dewais
  • joneslloyd
  • kamilgruszka
  • tharindu-wj
  • aminao
  • enuma
  • adriandmitroca
  • mixmaxkristina
  • corridonimatias
  • mikusd
  • mixmax_it
  • andra.lazariuc
  • danaya
  • adborroto
  • aaavakian
  • dnechay
  • raphaelbs
  • guilhermemj
  • eduard.borges
  • mixmax-codeship
  • bradvogel
  • jessem3
  • jsalvata
  • gabriel-mixmax