cast-web-api
Version:
Web API for Google Cast enabled devices.
69 lines (59 loc) • 2.16 kB
JavaScript
const chalk = require('chalk');
const debug = require('debug')('cast-web-api');
const configuration = require("../config/config");
class Logger {
constructor() {
}
static buildMeta(functionName, message, id) {
// {date+time} {id_underline} {functionName}: {message}
let date = new Date();
let time = date.toISOString();
if (id == null) {
id = '';
} else {
time = time + ' ';
};
return time + chalk.inverse(id) + ' ' + chalk.underline(functionName) + ': ' + message;
}
static info(functionName, message, id, debug=false) {
if (configuration.logLevel.info && this.isDebug(debug)) console.log(this.buildMeta(functionName, message, id));
}
static error(functionName, message, id, debug=false) {
if (configuration.logLevel.error && this.isDebug(debug)) console.log(chalk.red(Logger.buildMeta(functionName, message, id)));
}
static server(functionName, message, id, debug=false) {
if (configuration.logLevel.server && this.isDebug(debug)) console.log(chalk.cyan(Logger.buildMeta(functionName, message, id)));
}
static isDebug(debug) {
if (debug === true) {
return debug === configuration.debug;
} else {
return true;
}
}
//deprecated
static debugWarn(functionName, message, id) {
debug(chalk.yellow(Logger.buildMeta(functionName, message, id)));
}
static log(type, functionName, message, id) { //TODO: deprecated
if (type === 'info') {
this.info(functionName, message, id);
}
if (type === 'error') {
this.error(functionName, message, id);
}
if (type === 'server') {
this.server(functionName, message, id);
}
if (type === 'debug') {
this.info(functionName, message, id, true);
}
if (type === 'debug-server') {
this.server(functionName, message, id, true);
}
if (type === 'debug-error') {
this.error(functionName, message, id, true);
}
}
}
module.exports = Logger;