winston-logsene
Version:
Winston transport layer for Logsene
94 lines (93 loc) • 2.61 kB
JavaScript
const LOGSENE_TOKEN = 'irrelevant-token'
describe('Logsene log ', function () {
this.timeout(50000)
it('log N entries and get N events', function (done) {
try {
var winston = require('winston')
var Logsene = require('../lib/index.js')
var transport = new Logsene({ token: LOGSENE_TOKEN })
var logger = winston.createLogger({
format: winston.format.combine(winston.format.splat(), winston.format.simple()),
transports:[transport]
})
for (var i = 0; i < 100; i++) {
logger.info('Test %d for %s', i, 'logsene', {x: i, y: {arr: [1, 2, 3, 4]}})
}
transport.on('logged', function (data) {
if (data.count === 100) {
done()
}
})
transport.on('finish', function (err) {
if (err) {
done(err)
}
})
logger.end()
} catch (ex) {
console.log(ex.stack)
done(ex)
}
})
})
describe('Logsene log source', function () {
it('should have source mocha-test', function (done) {
try {
var winston = require('winston')
var Logsene = require('../lib/index.js')
var transport = new Logsene({ token: LOGSENE_TOKEN , setSource: true, source: 'mocha-test' })
var logger = winston.createLogger({
transports:[transport]
})
transport.logger.on('logged', function(data) {
if (data.msg.source === 'mocha-test') {
done()
}
})
logger.info('Test')
logger.on('finish', function (err, level, message, data) {
if (err) {
done(err)
}
})
logger.end()
} catch (ex) {
console.log(ex.stack)
done(ex)
}
})
})
describe('Logsene rewrite hook', function () {
it('should have correct meta.ip field', function (done) {
try {
var winston = require('winston')
var Logsene = require('../lib/index.js')
var transport = new Logsene({
token: LOGSENE_TOKEN,
setSource: false,
flushOnExit: true,
rewriter: function (level, msg, meta) {
meta.ip = serverIp
return meta
}
})
var logger = winston.createLogger({
transports:[transport]
})
var serverIp = '10.0.0.12'
var lo = {x: 1}
transport.logger.on('logged', function(data) {
if (data.msg.ip === serverIp) {
done()
} else {
done(new Error('rewrite field ip is not correct:' + data.ip))
}
})
logger.info('Test', lo)
logger.end()
} catch (ex) {
console.log(ex.stack)
done(ex)
}
})
})