diff --git a/src/index.js b/src/index.js index 88c76ba..74047af 100644 --- a/src/index.js +++ b/src/index.js @@ -33,11 +33,11 @@ /** * Enum specifying the levels of the logger * - * @property levels + * @property logLevel * @type Enum * @for export */ -export var levels = { +export var logLevel = { none: 0, error:1, warn:2, @@ -46,7 +46,7 @@ export var levels = { }; var loggers = {}, - logLevel = levels.none, + currentLevel = logLevel.none, appenders = [], slice = Array.prototype.slice, loggerConstructionKey = {}; @@ -65,7 +65,7 @@ function log(logger, level, args){ } function debug(){ - if(logLevel < 4){ + if(currentLevel < 4){ return; } @@ -73,7 +73,7 @@ function debug(){ } function info(){ - if(logLevel < 3){ + if(currentLevel < 3){ return; } @@ -81,7 +81,7 @@ function info(){ } function warn(){ - if(logLevel < 2){ + if(currentLevel < 2){ return; } @@ -89,7 +89,7 @@ function warn(){ } function error(){ - if(logLevel < 1){ + if(currentLevel < 1){ return; } @@ -150,7 +150,7 @@ export function addAppender(appender){ * @for export */ export function setLevel(level){ - logLevel = level; + currentLevel = level; } /** diff --git a/test/logging.spec.js b/test/logging.spec.js index 6384981..6d40ff5 100644 --- a/test/logging.spec.js +++ b/test/logging.spec.js @@ -7,127 +7,127 @@ describe('A simple log manager test', () => { }); }); -describe('The log manager ', () => { +describe('The log manager ', () => { var logName = 'test', logger, testAppender; - + class TestAppender { debug(args) { } info(args){} warn(args){} - error(args){} + error(args){} } - + beforeEach(() => { testAppender = new TestAppender(); - + spyOn(testAppender, 'debug'); spyOn(testAppender, 'info'); spyOn(testAppender, 'warn'); spyOn(testAppender, 'error'); - + LogManager.addAppender(testAppender); - + logger = LogManager.getLogger(logName); - LogManager.setLevel(LogManager.levels.none); + LogManager.setLevel(LogManager.logLevel.none); }); - - it('should call only call debug when logLevel is debug', () => { - LogManager.setLevel(LogManager.levels.debug); - logger.debug('foo'); - - LogManager.setLevel(LogManager.levels.info); - logger.debug('foo'); - - LogManager.setLevel(LogManager.levels.warn); - logger.debug('foo'); - - LogManager.setLevel(LogManager.levels.error); - logger.debug('foo'); - - LogManager.setLevel(LogManager.levels.none); - logger.debug('foo'); - + + it('should call only call debug when logLevel is debug', () => { + LogManager.setLevel(LogManager.logLevel.debug); + logger.debug('foo'); + + LogManager.setLevel(LogManager.logLevel.info); + logger.debug('foo'); + + LogManager.setLevel(LogManager.logLevel.warn); + logger.debug('foo'); + + LogManager.setLevel(LogManager.logLevel.error); + logger.debug('foo'); + + LogManager.setLevel(LogManager.logLevel.none); + logger.debug('foo'); + expect(testAppender.debug.calls.count()).toBe(1) - }); - + }); + it('should call only call info when logLevel is debug or info', () => { - LogManager.setLevel(LogManager.levels.debug); - logger.info('foo'); - - LogManager.setLevel(LogManager.levels.info); - logger.info('foo'); - - LogManager.setLevel(LogManager.levels.warn); - logger.info('foo'); - - LogManager.setLevel(LogManager.levels.error); - logger.info('foo'); - - LogManager.setLevel(LogManager.levels.none); - logger.info('foo'); - + LogManager.setLevel(LogManager.logLevel.debug); + logger.info('foo'); + + LogManager.setLevel(LogManager.logLevel.info); + logger.info('foo'); + + LogManager.setLevel(LogManager.logLevel.warn); + logger.info('foo'); + + LogManager.setLevel(LogManager.logLevel.error); + logger.info('foo'); + + LogManager.setLevel(LogManager.logLevel.none); + logger.info('foo'); + expect(testAppender.info.calls.count()).toBe(2) }); - - it('should call only call warn when logLevel is debug, info, or warn', () => { - LogManager.setLevel(LogManager.levels.debug); - logger.warn('foo'); - - LogManager.setLevel(LogManager.levels.info); - logger.warn('foo'); - - LogManager.setLevel(LogManager.levels.warn); - logger.warn('foo'); - - LogManager.setLevel(LogManager.levels.error); - logger.warn('foo'); - - LogManager.setLevel(LogManager.levels.none); - logger.warn('foo'); - + + it('should call only call warn when logLevel is debug, info, or warn', () => { + LogManager.setLevel(LogManager.logLevel.debug); + logger.warn('foo'); + + LogManager.setLevel(LogManager.logLevel.info); + logger.warn('foo'); + + LogManager.setLevel(LogManager.logLevel.warn); + logger.warn('foo'); + + LogManager.setLevel(LogManager.logLevel.error); + logger.warn('foo'); + + LogManager.setLevel(LogManager.logLevel.none); + logger.warn('foo'); + expect(testAppender.warn.calls.count()).toBe(3) - }); - - it('should call only call error when logLevel is debug, info, warn, or error', () => { - LogManager.setLevel(LogManager.levels.debug); - logger.error('foo'); - - LogManager.setLevel(LogManager.levels.info); - logger.error('foo'); - - LogManager.setLevel(LogManager.levels.warn); - logger.error('foo'); - - LogManager.setLevel(LogManager.levels.error); - logger.error('foo'); - - LogManager.setLevel(LogManager.levels.none); - logger.error('foo'); - + }); + + it('should call only call error when logLevel is debug, info, warn, or error', () => { + LogManager.setLevel(LogManager.logLevel.debug); + logger.error('foo'); + + LogManager.setLevel(LogManager.logLevel.info); + logger.error('foo'); + + LogManager.setLevel(LogManager.logLevel.warn); + logger.error('foo'); + + LogManager.setLevel(LogManager.logLevel.error); + logger.error('foo'); + + LogManager.setLevel(LogManager.logLevel.none); + logger.error('foo'); + expect(testAppender.error.calls.count()).toBe(4) - }); - + }); + it('should pass arguments to the appender', () => { - LogManager.setLevel(LogManager.levels.debug); + LogManager.setLevel(LogManager.logLevel.debug); logger.debug(123); - + expect(testAppender.debug).toHaveBeenCalledWith( logger, 123); }); - + it('should pass multiple arguments to the appender', () => { var objectToLog = { id: 1, name: 'John' }; - - LogManager.setLevel(LogManager.levels.debug); + + LogManager.setLevel(LogManager.logLevel.debug); logger.debug(123, objectToLog); - + expect(testAppender.debug).toHaveBeenCalledWith( logger, 123, objectToLog); }); - + it('should throw an exception if the Logger class is newed up by the developer', () => { var attemptingToNewUpALogger = () => { var myNewLogger = new Logger(); }; expect(attemptingToNewUpALogger).toThrow(); }); -}); \ No newline at end of file +});