Skip to content

Commit

Permalink
Added log level functions and unit test
Browse files Browse the repository at this point in the history
  • Loading branch information
tmwllc committed Jun 22, 2017
1 parent 935be2a commit fd738ac
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 1 deletion.
15 changes: 15 additions & 0 deletions src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,19 @@ const tracer = Object.assign(new GlobalTracer(), opentracing)
tracer.express = express
tracer.request = request

function logFn (level) {
return function log (ctx, event, data) {
if (level === 'debug') {
data = Object.assign({ debug: true }, data)
} else if (level === 'error') {
data = Object.assign({ error: true }, data)
}
ctx.span.log(Object.assign({ event: event , level: level}, data))
}
}
tracer.debug = logFn('debug')
tracer.info = logFn('info')
tracer.warn = logFn('warn')
tracer.error = logFn('error')

export default tracer
31 changes: 30 additions & 1 deletion test/tracer.spec.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
'use strict'

const should = require('should')

const _ = require('lodash')
const tracer = require('../src')
const Stream = require('./util/stream.js')

Expand Down Expand Up @@ -119,6 +119,35 @@ describe('tracer', () => {
}
})
})

it('should log events by level', () => {
let ctx = { span: tracer.startSpan('originating', () => {}) }

tracer.debug(ctx, 'DebugEvent', { foo: 'bar' })
tracer.info(ctx, 'InfoEvent', { foo: 'bar' })
tracer.warn(ctx, 'WarnEvent', { foo: 'bar' })
tracer.error(ctx, 'ErrorEvent', { foo: 'bar' })

let logs = ctx.span._fields.logs
let debugEvent = _.omit(_.find(logs, (log) => {
return log.level === 'debug'
}), ['timestamp'])
let infoEvent = _.omit(_.find(logs, (log) => {
return log.level=== 'info'
}), ['timestamp'])
let warnEvent = _.omit(_.find(logs, (log) => {
return log.level === 'warn'
}), ['timestamp'])
let errorEvent = _.omit(_.find(logs, (log) => {
return log.level === 'error'
}), ['timestamp'])

debugEvent.should.eql({ foo: 'bar', event: 'DebugEvent', level: 'debug', debug: true })
infoEvent.should.eql({ foo: 'bar', event: 'InfoEvent', level: 'info' })
warnEvent.should.eql({ foo: 'bar', event: 'WarnEvent', level: 'warn' })
errorEvent.should.eql({ foo: 'bar', event: 'ErrorEvent', level: 'error', error: true })

})
})

describe('with custom propagators', () => {
Expand Down

0 comments on commit fd738ac

Please sign in to comment.