Adjust code to airbnb style guide, including eslint rules and prettier configuration for code base
This commit is contained in:
parent
1b55cabf63
commit
281acd6ad8
23 changed files with 919 additions and 2225 deletions
203
plejd/Logger.js
203
plejd/Logger.js
|
|
@ -1,115 +1,116 @@
|
|||
const winston = require("winston");
|
||||
const { colorize, combine, label, printf, timestamp } = winston.format;
|
||||
const winston = require('winston');
|
||||
|
||||
const Configuration = require("./Configuration");
|
||||
const {
|
||||
colorize, combine, label, printf, timestamp,
|
||||
} = winston.format;
|
||||
|
||||
const LEVELS = ["error", "warn", "info", "debug", "verbose", "silly"];
|
||||
const Configuration = require('./Configuration');
|
||||
|
||||
const logFormat = printf(info => {
|
||||
if(info.stack) {
|
||||
return `${info.timestamp} ${info.level} [${info.label}] ${info.message}\n${info.stack}`;
|
||||
}
|
||||
return `${info.timestamp} ${info.level} [${info.label}] ${info.message}`;
|
||||
const LEVELS = ['error', 'warn', 'info', 'debug', 'verbose', 'silly'];
|
||||
|
||||
const logFormat = printf((info) => {
|
||||
if (info.stack) {
|
||||
return `${info.timestamp} ${info.level} [${info.label}] ${info.message}\n${info.stack}`;
|
||||
}
|
||||
return `${info.timestamp} ${info.level} [${info.label}] ${info.message}`;
|
||||
});
|
||||
|
||||
/** Winston-based logger */
|
||||
class Logger {
|
||||
constructor () {
|
||||
throw new Error("Please call createLogger instead");
|
||||
}
|
||||
constructor() {
|
||||
throw new Error('Please call createLogger instead');
|
||||
}
|
||||
|
||||
/** Created logger will follow Winston createLogger, but
|
||||
* - add module name to logger
|
||||
* - swap debug/verbose levels and omit http to mimic HA standard
|
||||
* Levels (in order): error, warn, info, debug, verbose, silly
|
||||
* */
|
||||
static getLogger(moduleName) {
|
||||
const config = Configuration.getConfiguration();
|
||||
const level = (config.logLevel && LEVELS.find(l => l.startsWith(config.logLevel[0].toLowerCase()))) || "info";
|
||||
/** Created logger will follow Winston createLogger, but
|
||||
* - add module name to logger
|
||||
* - swap debug/verbose levels and omit http to mimic HA standard
|
||||
* Levels (in order): error, warn, info, debug, verbose, silly
|
||||
* */
|
||||
static getLogger(moduleName) {
|
||||
const config = Configuration.getConfiguration();
|
||||
// eslint-disable-next-line max-len
|
||||
const level = (config.logLevel && LEVELS.find((l) => l.startsWith(config.logLevel[0].toLowerCase())))
|
||||
|| 'info';
|
||||
|
||||
const logger = winston.createLogger({
|
||||
format: combine(
|
||||
winston.format(info => {
|
||||
switch (info.level) {
|
||||
case "warning":
|
||||
info.level = "WRN";
|
||||
break;
|
||||
case "verbose":
|
||||
info.level = "VRB";
|
||||
break;
|
||||
case "debug":
|
||||
info.level = "DBG";
|
||||
break;
|
||||
default:
|
||||
info.level = info.level.substring(0,3).toUpperCase()
|
||||
}
|
||||
|
||||
return info;
|
||||
})(),
|
||||
timestamp({ format: 'YYYY-MM-DD HH:mm:ss' }),
|
||||
label({ label: moduleName}),
|
||||
colorize(),
|
||||
logFormat,
|
||||
),
|
||||
level: level,
|
||||
levels: Logger.logLevels().levels,
|
||||
transports: [
|
||||
new winston.transports.Console(),
|
||||
]
|
||||
});
|
||||
winston.addColors(Logger.logLevels().colors);
|
||||
|
||||
|
||||
if (moduleName === "plejd-main") {
|
||||
logger.log(level, `Log level set to ${level}`);
|
||||
}
|
||||
|
||||
return logger;
|
||||
}
|
||||
|
||||
|
||||
static logLevels() {
|
||||
// Default (npm) levels
|
||||
// levels = {
|
||||
// error: 0,
|
||||
// warn: 1,
|
||||
// info: 2,
|
||||
// http: 3,
|
||||
// verbose: 4,
|
||||
// debug: 5,
|
||||
// silly: 6
|
||||
// }
|
||||
// colors = {
|
||||
// error: 'red',
|
||||
// warn: 'yellow',
|
||||
// info: 'green',
|
||||
// http: 'green',
|
||||
// verbose: 'cyan',
|
||||
// debug: 'blue',
|
||||
// silly: 'magenta'
|
||||
// };
|
||||
|
||||
// Mimic HA standard below
|
||||
// Debug/verbose swapped compared to npm levels, http omitted
|
||||
return {
|
||||
levels: {
|
||||
error: 0,
|
||||
warn: 1,
|
||||
info: 2,
|
||||
debug: 3,
|
||||
verbose: 4,
|
||||
silly: 6
|
||||
},
|
||||
colors: {
|
||||
error: 'red',
|
||||
warn: 'yellow',
|
||||
info: 'green',
|
||||
debug: 'cyan',
|
||||
verbose: 'blue',
|
||||
silly: 'magenta'
|
||||
const logger = winston.createLogger({
|
||||
format: combine(
|
||||
winston.format((info) => {
|
||||
switch (info.level) {
|
||||
case 'warning':
|
||||
info.level = 'WRN';
|
||||
break;
|
||||
case 'verbose':
|
||||
info.level = 'VRB';
|
||||
break;
|
||||
case 'debug':
|
||||
info.level = 'DBG';
|
||||
break;
|
||||
default:
|
||||
info.level = info.level.substring(0, 3).toUpperCase();
|
||||
}
|
||||
};
|
||||
|
||||
return info;
|
||||
})(),
|
||||
timestamp({ format: 'YYYY-MM-DD HH:mm:ss' }),
|
||||
label({ label: moduleName }),
|
||||
colorize(),
|
||||
logFormat,
|
||||
),
|
||||
level,
|
||||
levels: Logger.logLevels().levels,
|
||||
transports: [new winston.transports.Console()],
|
||||
});
|
||||
winston.addColors(Logger.logLevels().colors);
|
||||
|
||||
if (moduleName === 'plejd-main') {
|
||||
logger.log(level, `Log level set to ${level}`);
|
||||
}
|
||||
|
||||
return logger;
|
||||
}
|
||||
|
||||
static logLevels() {
|
||||
// Default (npm) levels
|
||||
// levels = {
|
||||
// error: 0,
|
||||
// warn: 1,
|
||||
// info: 2,
|
||||
// http: 3,
|
||||
// verbose: 4,
|
||||
// debug: 5,
|
||||
// silly: 6
|
||||
// }
|
||||
// colors = {
|
||||
// error: 'red',
|
||||
// warn: 'yellow',
|
||||
// info: 'green',
|
||||
// http: 'green',
|
||||
// verbose: 'cyan',
|
||||
// debug: 'blue',
|
||||
// silly: 'magenta'
|
||||
// };
|
||||
|
||||
// Mimic HA standard below
|
||||
// Debug/verbose swapped compared to npm levels, http omitted
|
||||
return {
|
||||
levels: {
|
||||
error: 0,
|
||||
warn: 1,
|
||||
info: 2,
|
||||
debug: 3,
|
||||
verbose: 4,
|
||||
silly: 6,
|
||||
},
|
||||
colors: {
|
||||
error: 'red',
|
||||
warn: 'yellow',
|
||||
info: 'green',
|
||||
debug: 'cyan',
|
||||
verbose: 'blue',
|
||||
silly: 'magenta',
|
||||
},
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = Logger;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue