44 lines
978 B
JavaScript
44 lines
978 B
JavaScript
/* eslint no-console: 0 */
|
|
const zeroPad = (str, len) => {
|
|
let output = `${str}`;
|
|
if (!len || len <= output.length) return str;
|
|
|
|
while (output.length < len) {
|
|
output = `0${output}`;
|
|
}
|
|
return output;
|
|
};
|
|
|
|
const getTimestamp = () => {
|
|
const d = new Date();
|
|
return `${[d.getFullYear(), zeroPad(d.getMonth(), 2), zeroPad(d.getDate(), 2)].join('/')} ${[
|
|
zeroPad(d.getHours(), 2),
|
|
zeroPad(d.getMinutes(), 2),
|
|
zeroPad(d.getSeconds(), 2),
|
|
].join(':')}`;
|
|
};
|
|
|
|
const wrapMessage = msg => `[${getTimestamp()}]: ${msg.join(' ')}`;
|
|
|
|
const logger = {
|
|
log(...args) {
|
|
console.log(wrapMessage(args));
|
|
},
|
|
warn(...args) {
|
|
console.warn(wrapMessage(args));
|
|
},
|
|
error(...args) {
|
|
if (args[0] instanceof Error) {
|
|
console.error(getTimestamp(), args[0].stack);
|
|
return;
|
|
}
|
|
console.error(wrapMessage(args));
|
|
},
|
|
debug(...args) {
|
|
if (!process.env.DEBUG) return;
|
|
console.log(wrapMessage(args));
|
|
},
|
|
};
|
|
|
|
export default logger;
|