Comparing version 0.15.0 to 0.16.0
@@ -70,3 +70,5 @@ logfmt = require('../logfmt'); | ||
var old_log = this.log; | ||
var old_stream = this.stream; | ||
new_logfmt.log = function(data, stream){ | ||
if(stream == undefined) stream = old_stream; | ||
data = data || {}; | ||
@@ -73,0 +75,0 @@ logdata = {}; |
@@ -1,3 +0,1 @@ | ||
var logfmt = require('../logfmt'); | ||
var commonFormatter = function(req, res){ | ||
@@ -22,4 +20,4 @@ if((typeof req.path) == 'function'){ | ||
"status": res.statusCode, | ||
content_length: req.header('content-length'), | ||
content_type: req.header('content-type'), | ||
content_length: res.get('content-length'), | ||
content_type: res.get('content-type'), | ||
} | ||
@@ -29,6 +27,6 @@ } | ||
var immediateLogger = function(options, formatter){ | ||
var immediateLogger = function(logger, options, formatter){ | ||
return function(req, res, next){ | ||
var data = formatter(req, res); | ||
logfmt.log(data); | ||
logger.log(data); | ||
next(); | ||
@@ -38,6 +36,6 @@ } | ||
var timingLogger = function(options, formatter){ | ||
var timingLogger = function(logger, options, formatter){ | ||
return function(req, res, next){ | ||
var elapsed = options.elapsed || 'elapsed'; | ||
logfmt.time(elapsed, function(logger) { | ||
logger.time(elapsed, function(logger) { | ||
var end = res.end; | ||
@@ -55,3 +53,5 @@ res.end = function(chunk, encoding) { | ||
exports = module.exports = function(options, formatter){ | ||
exports.init = function(logger, options, formatter) { | ||
this.logger = logger; | ||
if(!formatter && !options){ | ||
@@ -72,5 +72,5 @@ formatter = commonFormatter; | ||
if(options.immediate){ | ||
return immediateLogger(options, formatter); | ||
return immediateLogger(logger, options, formatter); | ||
}else{ | ||
return timingLogger(options, formatter); | ||
return timingLogger(logger, options, formatter); | ||
} | ||
@@ -77,0 +77,0 @@ } |
@@ -13,4 +13,2 @@ var logfmt = function(){ | ||
this.requestLogger = require('./lib/request_logger'); | ||
this.maxErrorLines = 10; | ||
@@ -33,2 +31,9 @@ | ||
} | ||
//Request Logger | ||
var requestLogger = require('./lib/request_logger'); | ||
this.requestLogger = function(options, formatter){ | ||
return requestLogger.init(this, options, formatter); | ||
} | ||
this.requestLogger.commonFormatter = requestLogger.commonFormatter | ||
} | ||
@@ -35,0 +40,0 @@ |
{ | ||
"name": "logfmt", | ||
"version": "0.15.0", | ||
"description": "Key-Value log line parser", | ||
"version": "0.16.0", | ||
"description": "key=value logger and parser", | ||
"main": "logfmt.js", | ||
@@ -6,0 +6,0 @@ "scripts": { |
@@ -49,2 +49,15 @@ var logfmt = require('../logfmt'), | ||
}) | ||
test("works when a stream is not passed in", function(){ | ||
var logfmt2 = logfmt.namespace(); | ||
var mock_sink = new OutStream; | ||
var data = ''; | ||
try { | ||
logfmt2.log({"foo":"bar"}); | ||
data = 'success'; | ||
} catch (err) { | ||
data = 'failure'; | ||
} | ||
assert.equal('success', data); | ||
}) | ||
}) |
@@ -56,2 +56,5 @@ var logfmt = require('../logfmt'), | ||
var mockRes = {statusCode: 200} | ||
mockRes.get = function(){ | ||
return 'foo'; | ||
} | ||
var next = function(){ | ||
@@ -95,2 +98,6 @@ var actual = logfmt.parse(logfmt.stream.logline); | ||
mockReq.ip = '1.0.0.1' | ||
mockReq.header = function(h){ | ||
return 'foo' | ||
} | ||
var mockRes = {statusCode: 200} | ||
var headers = { | ||
@@ -100,6 +107,5 @@ "content-type": 'foo/foo', | ||
} | ||
mockReq.header = function(h){ | ||
mockRes.get = function(h){ | ||
return headers[h]; | ||
} | ||
var mockRes = {statusCode: 200} | ||
mockRes.end = function(data, encoding){} | ||
@@ -128,2 +134,3 @@ var next = function(){ | ||
var mockRes = {statusCode: 200} | ||
mockRes.get = function(){ return 'foo' } | ||
var actual = logfmt.requestLogger.commonFormatter(mockReq, mockRes); | ||
@@ -143,2 +150,5 @@ assert.equal('/bar', actual.path); | ||
var mockRes = {statusCode: 200} | ||
mockRes.get = function(){ | ||
return 'foo'; | ||
} | ||
var actual = logfmt.requestLogger.commonFormatter(mockReq, mockRes); | ||
@@ -148,2 +158,17 @@ assert.equal('10.0.1.1', actual.ip); | ||
test("requestLogger works with namespace", function(done){ | ||
var mockReq = {method: 'GET'} | ||
mockReq.header = function(){ return 'foo'; } | ||
var mockRes = {statusCode: 200} | ||
mockRes.get = function(){ return 'foo'; } | ||
var next = function(){ | ||
var actual = logfmt.parse(logfmt.stream.logline); | ||
assert.equal('namespacetest', actual.ns); | ||
}; | ||
var logger = logfmt.namespace({ns:'namespacetest'}).requestLogger({immediate: true}) | ||
logger(mockReq, mockRes, next) | ||
done() | ||
}) | ||
}) |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
53473
1240