mirror of
https://github.com/mtan93/homebridge.git
synced 2026-03-09 13:21:58 +00:00
Simpler logging
This commit is contained in:
@@ -1,4 +1,11 @@
|
||||
import log from 'npmlog';
|
||||
import chalk from 'chalk';
|
||||
|
||||
let DEBUG_ENABLED = false;
|
||||
|
||||
// Turns on debug level logging
|
||||
export function setDebugEnabled(enabled) {
|
||||
DEBUG_ENABLED = enabled;
|
||||
}
|
||||
|
||||
// global cache of logger instances by provider name
|
||||
let loggerCache = {};
|
||||
@@ -8,20 +15,44 @@ export class Logger {
|
||||
constructor(providerName: string) {
|
||||
this.providerName = providerName;
|
||||
}
|
||||
|
||||
debug(msg: string) {
|
||||
if (DEBUG_ENABLED)
|
||||
this.log('debug', msg);
|
||||
}
|
||||
|
||||
info(msg: string) {
|
||||
log.info(`[${this.providerName}] ${msg}`);
|
||||
this.log('info', msg);
|
||||
}
|
||||
|
||||
warn(msg: string) {
|
||||
log.warn(`[${this.providerName}] ${msg}`);
|
||||
this.log('warn', msg);
|
||||
}
|
||||
|
||||
error(msg: string) {
|
||||
log.error(`[${this.providerName}] ${msg}`);
|
||||
this.log('error', msg);
|
||||
}
|
||||
|
||||
static forProvider(providerName: string):Logger {
|
||||
log(level: string, msg: string) {
|
||||
|
||||
if (level == 'debug')
|
||||
msg = chalk.gray(msg);
|
||||
else if (level == 'warn')
|
||||
msg = chalk.yellow(msg);
|
||||
else if (level == 'error')
|
||||
msg = chalk.bold.red(msg);
|
||||
|
||||
// prepend provider name if applicable
|
||||
if (this.providerName)
|
||||
msg = chalk.cyan(`[${this.providerName}]`) + " " + msg;
|
||||
|
||||
console.log(msg);
|
||||
}
|
||||
|
||||
static forProvider(providerName: string): Logger {
|
||||
return loggerCache[providerName] || (loggerCache[providerName] = new Logger(providerName));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// system logger, for internal use only
|
||||
export let log = new Logger();
|
||||
|
||||
Reference in New Issue
Block a user