blockstack
Version:
The Blockstack Javascript library for authentication, identity, and storage.
53 lines (43 loc) • 1.15 kB
text/typescript
import { config } from './config'
const levels = [
'debug',
'info',
'warn',
'error',
'none'
]
const levelToInt: {[level: string]: number} = {}
const intToLevel: {[int: number]: string} = {}
for (let index = 0; index < levels.length; index++) {
const level = levels[index]
levelToInt[level] = index
intToLevel[index] = level
}
/**
* @ignore
*/
export class Logger {
static error(message: string) {
if (!this.shouldLog('error')) return
console.error(this.logMessage('error', message))
}
static warn(message: string) {
if (!this.shouldLog('warn')) return
console.warn(this.logMessage('warn', message))
}
static info(message: string) {
if (!this.shouldLog('info')) return
console.log(this.logMessage('info', message))
}
static debug(message: string) {
if (!this.shouldLog('debug')) return
console.log(this.logMessage('debug', message))
}
static logMessage(level: string, message: string) {
return `[${level.toUpperCase()}] ${message}`
}
static shouldLog(level: string) {
const currentLevel = levelToInt[config.logLevel]
return currentLevel <= levelToInt[level]
}
}