saalogg
Advanced tools
Comparing version 0.2.1 to 0.3.1
31
index.js
Object.assign(module.exports, { | ||
addLogger, | ||
}) | ||
// Avoid it to be loaded more than once | ||
if (typeof loaded === 'undefined') { | ||
if (console.__saalogg_loaded === undefined) { | ||
const chalk = require('chalk') | ||
@@ -31,4 +36,26 @@ const util = require('util') | ||
loaded = true | ||
console.__saalogg_loaded = true | ||
console.__loggers = [] | ||
} | ||
function addLogger ({ loggerId, logLevels, fn }) { | ||
// Avoid adding the same logger twice | ||
if (loggerId && console.__loggers.includes(loggerId)) { | ||
console.warn("Attempt to add same logger twice\n", new Error().stack) | ||
return | ||
} | ||
console.__loggers.push(loggerId) | ||
logLevels.forEach((level) => { | ||
if (!console[level]) throw new Error(`No valid log level ${level}`) | ||
const tmp = console[level] | ||
console[level] = (...msg) => { | ||
tmp.apply(this, msg) | ||
fn.apply(this, msg) | ||
} | ||
}) | ||
} | ||
{ | ||
"name": "saalogg", | ||
"version": "0.2.1", | ||
"version": "0.3.1", | ||
"description": "Just a simple logging tool", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
const expect = require('chai').expect | ||
const saalogg = require('../index') | ||
describe('Saalog', () => { | ||
it('loads', () => { | ||
require('../index') | ||
}) | ||
describe('On dev environment', () => { | ||
@@ -90,3 +87,46 @@ | ||
describe('addLogger()', () => { | ||
before(() => { | ||
function extraLog (msg) { | ||
console.log('[EXTRA]', msg) | ||
} | ||
saalogg.addLogger({ | ||
loggerId: 'test', | ||
logLevels: ['warn', 'error'], | ||
fn: extraLog, | ||
}) | ||
}) | ||
it('logs strings', () => { | ||
console.log('This', 'is', 'a', 'log') | ||
}) | ||
it('logs objects', () => { | ||
console.log({a:1, b: 2, c: {c: 3}}) | ||
}) | ||
it('logs variables', () => { | ||
let myStr = 'This is dog' | ||
console.log(myStr) | ||
}) | ||
it('injects values', () => { | ||
console.log('This is %s #%f', 'dog', 2) | ||
}) | ||
it('warns', () => { | ||
console.warn('This is a warning') | ||
}) | ||
it('logs errors', () => { | ||
console.error('This is an error') | ||
}) | ||
}) | ||
}) | ||
4802
135
4