icecast-log-parser
v1.0.0
Published
Icecast access log stream parser.
Downloads
8
Maintainers
Readme
Quickstart
Provides handy interface to icecast access.log data. Can be useful for collecting statistics or data analysis.
Use npm install icecast-log-parser
to install latest stable version.
Usage
var IcecastAccessLogParser = require('icecast-log-parser');
var parser = new IcecastAccessLogParser();
parser.on('entry', function(entry) {
console.log(entry); // process entry
});
parser.on('error', function(error) {
console.log('error', error);
parser.resume(); // continue data processing after error is handled
});
parser.on('finish', function(){
console.log('file parsing finished!');
});
var source = require('fs').createReadStream('/var/log/icecast/access.log');
source.pipe(parser);
Events
parser.line
Is emitted for every line in access.log.
parser.on('line', function(line) {
console.log(line);
});
parser.entry
Is emitted for every successfully parsed line in access.log. See parser.parseLine
method for event data.
parser.on('entry', function(entry) {
console.log(entry);
});
parser.error
Parsing errors will cause error
event & data processing stop. Use parser.resume method to continue data processing.
parser.on('error', function(error) {
console.log(error);
});
parser.finish
Is emitted when source stream data ends.
parser.on('finish', function() {
console.log('parsing finished');
});
Methods
parser.parseLine
Parses single line from icecast access.log
parser.parseLine('127.0.0.1 - - [19/Jun/2015:18:58:25 +0300] "GET /test.mp3 HTTP/1.0" 302 170 "-" "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.152 YaBrowser/15.6.2311.3927 Safari/537.36" 0');
Parameter | Type | Description
-----------|---------|------------
ip
| String | Client IP address
date
| Integer | Request timestamp
method
| String | HTTP method
url
| String | Request url path
status
| Integer | HTTP status
size
| Integer | The size of the object returned to the client in bytes
referer
| String | Referrer url
agent
| String | User-agent
duration
| Integer | Connection duration
parser.resume
If error event happens, data processing is being stopped. You can call this method to continue data processing.
parser.on('error', function(error) {
console.log('error', error);
parser.resume();
});