w-syslog
Version:
A system monitor in nodejs.
51 lines (36 loc) • 1.32 kB
JavaScript
import fs from 'fs'
import assert from 'assert'
import _ from 'lodash-es'
import w from 'wsemi'
import WSyslog from '../src/WSyslog.mjs'
describe('WSyslog', function() {
it('test', async function() {
w.fsCleanFolder('./_logs')
let log = WSyslog({ interval: 'hr' })
log.info({ event: 'runner', msg: 'start' })
log.warn({ event: 'monitor-memory', msg: 'usage-high', ratio: 85.4 })
log.error({ event: 'crash', msg: 'db connection', code: 500 })
await w.delay(2000) //等待2秒讓pino能flush數據
let vpfs = w.fsTreeFolder('./_logs')
// console.log('vpfs', vpfs)
let fp = _.get(vpfs, `0.path`, '')
let jj = fs.readFileSync(fp, 'utf8')
let ss = w.sep(jj, '\n')
let r = _.map(ss, (j) => {
let v = JSON.parse(j)
let event = _.get(v, 'event')
let msg = _.get(v, 'msg')
return {
event,
msg,
}
})
// console.log('r', r)
let rr = [
{ event: 'runner', msg: 'start' },
{ event: 'monitor-memory', msg: 'usage-high' },
{ event: 'crash', msg: 'db connection' },
]
assert.strict.deepEqual(r, rr)
})
})