Socket
Socket
Sign inDemoInstall

logfmt

Package Overview
Dependencies
Maintainers
1
Versions
41
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

logfmt - npm Package Compare versions

Comparing version 0.9.2 to 0.10.0

examples/big_file2

6

lib/body_parser.js

@@ -40,3 +40,7 @@

try {
req.body = options.parser(buf);
var lines = []
buf.split("\n").forEach(function(line){
lines.push(options.parser(line))
})
req.body = lines;
} catch (err) {

@@ -43,0 +47,0 @@ err.body = buf;

66

logfmt.js

@@ -1,74 +0,24 @@

var split = require('split');
var through = require('through');
var parse = require('./lib/logfmt_parser').parse;
exports.parse = parse;
exports.stream = process.stdout;
exports.log = function(data, stream) {
if(stream == undefined) stream = exports.stream;
var logger = require('./lib/logger');
exports.log = logger.log;
exports.time = logger.time;
var line = '';
Object.keys(data).forEach(function(key){
var value = data[key].toString();
if(value.indexOf(' ') > -1) value = '"' + value + '"';
line += key + '=' + value + ' ';
})
//trim traling space and print w. newline
stream.write(line.substring(0,line.length-1) + "\n");
}
//Syncronous Body Parser
var bodyParser = require('./lib/body_parser')
var logfmtBodyParser = function (body) {
var lines = []
body.split("\n").forEach(function(line){
lines.push(parse(line))
})
return lines;
}
exports.bodyParser = function(options) {
if(options == null) options = {};
var mime = options.contentType || "application/logplex-1"
return bodyParser({contentType: mime, parser: logfmtBodyParser})
return bodyParser({contentType: mime, parser: parse})
}
//Stream Body Parser
var Readable = require('readable-stream').Readable;
var bodyParserStream = function(options){
var bodyParserStream = require('./lib/body_parser_stream');
exports.bodyParserStream = function(options) {
if(options == null) options = {};
var mime = options.contentType || "application/logplex-1";
return function(req, res, next) {
//setup
if (req._body) return next();
var is_mime = req.get('content-type') === mime;
if (!is_mime) return next();
req._body = true;
//define Readable body Stream
req.body = new Readable({ objectMode: true });
req.body._read = function(n) {
req.body._paused = false;
};
function parseLine(line) {
if(line) {
var parsedLine = parse(line);
if(!req.body._paused) req.body._paused = !req.body.push(parsedLine);
}
}
function end() { req.body.push(null); }
req.pipe(split()).pipe(through(parseLine, end));
return next();
}
var mime = options.contentType || "application/logplex-1"
return bodyParserStream({contentType: mime, parser: parse})
}
exports.bodyParserStream = bodyParserStream;
{
"name": "logfmt",
"version": "0.9.2",
"version": "0.10.0",
"description": "Key-Value log line parser",

@@ -5,0 +5,0 @@ "main": "logfmt.js",

@@ -46,5 +46,65 @@ # node-logfmt

### `logfmt.time([label], [data], callback(logger))`
#### `logger.log([data], [stream])`
Log how long something takes.
- `label`: optional name for the milliseconds key (defaults to `elapsed`)
- `data`: optional extra data to include with every call to `logger.log`
- `logger`: object passed to callback with a `log` function
No args defaults to `elapsed=<milliseconds>ms`
```javascript
logfmt.time(function(logger){
logger.log();
})
//=> elapsed=1ms
```
String `label` changes the key `<string>=<milliseconds>ms`
```javascript
logfmt.time('time', function(logger){
logger.log();
logger.log();
})
//=> time=1ms
//=> time=2ms
```
Data can be passed to `logger.log`
```javascript
logfmt.time(function(logger){
logger.log({foo: 'bar'});
})
//=> foo=bar elapsed=1ms
```
Data can also be passed to `logfmt.time` and will persist
across calls to `logger.log`
```javascript
logfmt.time('thing', {foo: 'bar'}, function(logger){
logger.log({at: 'function.start'});
logger.log({at: 'function.end'});
})
//=> at=function.start foo=bar thing=1ms
//=> at=function.end foo=bar thing=2ms
```
You do not need a `label` to pass data to `logfmt.time`
```javascript
logfmt.time({foo: 'bar'}, function(logger){
logger.log({at: 'function'});
})
//=> at=function foo=bar elapsed=1ms
```
### customizing logging location
`log()` Accepts as 2nd arg anything that responds to `write(string)`
`logfmt.log()` and `logger.log()` Accepts as 2nd argument anything that responds to `write(string)`
```javascript

@@ -56,3 +116,3 @@ var logfmt = require('logfmt');

Overwrite the default location by setting `.stream`
Overwrite the default global location by setting `logfmt.stream`
```javascript

@@ -59,0 +119,0 @@ var logfmt = require('logfmt');

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc