The zero dependency Node.js module for tailing a file
Author: Luca Grulla - www.lucagrulla.com
npm install tailTail = require('tail').Tail;
tail = new Tail("fileToTail");
tail.on("line", function(data) {
console.log(data);
});
tail.on("error", function(error) {
console.log('ERROR: ', error);
});
tail.watch();If you want to stop tail:
tail.unwatch()To start watching again:
tail.watch()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, fsWatchOptions: {}, follow: true, logger: console}
new Tail(fileToTail, options)separator: the line separator token (default:/[\r]{0,1}\n/to handle linux/mac (9+)/windows). Pass null if your file is binary there's no line separator.fsWatchOptions: the full set of options that can be passed tofs.watchas 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).follow: simulatetail -Foption. In the case the file is moved/renamed (or logrotated), if set totruetailwill try to start tailing again after a 1 second delay, if set tofalseit 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 totruewill force the use offs.watchFilerather than delegating to the library the choice betweenfs.watchandfs.watchFile(default:false).encoding: the encoding of the file to tail (default:utf-8).flushAtEOF: set totrueif you want to force flush of content when end of file is reached. Particularly useful when there's no separator character at the end of the file (default:false).
Tail emits two events:
- line
function(data){
console.log(data)
}- error
function(exception){
console.error(exception);
}Tail is written in CoffeeScript.
The Cakefile generates the javascript that is then published to npm.
Tail was born as part of a data firehose. Read about it here.
MIT. Please see License file for more details.
