- 1 :
/* istanbul ignore next */
- 2 :
- 3 :
/**
- 4 :
* Class with a logger interface. Messages are only logged to console if
- 5 :
* their log level is smaller or equal than the current log level.
- 6 :
*
- 7 :
* @author {@link https://github.com/Mugen87|Mugen87}
- 8 :
*/
- 9 :
class Logger {
- 10 :
- 11 :
/**
- 12 :
* Sets the log level for the logger. Allow values are: *LOG*,
- 13 :
* *WARN*, *ERROR*, *SILENT*. The default level is *WARN*. The constants
- 14 :
* are accessible over the *Logger.LEVEL* namespace.
- 15 :
*
- 16 :
* @param {Number} level - The log level.
- 17 :
*/
- 18 :
static setLevel( level ) {
- 19 :
- 20 :
currentLevel = level;
- 21 :
- 22 :
}
- 23 :
- 24 :
/**
- 25 :
* Logs a message with the level *LOG*.
- 26 :
*
- 27 :
* @param {...Any} args - The arguments to log.
- 28 :
*/
- 29 :
static log( ...args ) {
- 30 :
- 31 :
if ( currentLevel <= Logger.LEVEL.LOG ) console.log( ...args );
- 32 :
- 33 :
}
- 34 :
- 35 :
/**
- 36 :
* Logs a message with the level *WARN*.
- 37 :
*
- 38 :
* @param {...Any} args - The arguments to log.
- 39 :
*/
- 40 :
static warn( ...args ) {
- 41 :
- 42 :
if ( currentLevel <= Logger.LEVEL.WARN ) console.warn( ...args );
- 43 :
- 44 :
}
- 45 :
- 46 :
/**
- 47 :
* Logs a message with the level *ERROR*.
- 48 :
*
- 49 :
* @param {...Any} args - The arguments to log.
- 50 :
*/
- 51 :
static error( ...args ) {
- 52 :
- 53 :
if ( currentLevel <= Logger.LEVEL.ERROR ) console.error( ...args );
- 54 :
- 55 :
}
- 56 :
- 57 :
}
- 58 :
- 59 :
Logger.LEVEL = Object.freeze( {
- 60 :
LOG: 0,
- 61 :
WARN: 1,
- 62 :
ERROR: 2,
- 63 :
SILENT: 3
- 64 :
} );
- 65 :
- 66 :
let currentLevel = Logger.LEVEL.WARN;
- 67 :
- 68 :
- 69 :
export { Logger };