@mixmaxhq/tail
v1.3.0
Published
tail a file in node
Downloads
16
Readme
Tail
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 tofs.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
: simulatetail -F
option. In the case the file is moved/renamed (or logrotated), if set totrue
tail
will try to start tailing again after a 1 second delay, if set tofalse
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 totrue
will force the use offs.watchFile
rather than delegating to the library the choice betweenfs.watch
andfs.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.