mermaid/src/logger.js

63 lines
1.7 KiB
JavaScript
Raw Normal View History

2019-09-12 12:58:57 -07:00
import moment from 'moment-mini';
2021-02-06 15:56:05 +05:30
2017-09-10 16:56:10 +08:00
export const LEVELS = {
debug: 1,
info: 2,
warn: 3,
error: 4,
2021-07-15 11:35:12 +02:00
fatal: 5,
2019-09-12 12:58:57 -07:00
};
2017-09-10 16:56:10 +08:00
2021-02-06 15:56:05 +05:30
export const log = {
2017-09-09 15:16:15 +08:00
debug: () => {},
info: () => {},
warn: () => {},
error: () => {},
2021-07-15 11:35:12 +02:00
fatal: () => {},
2019-09-12 12:58:57 -07:00
};
2021-07-15 11:35:12 +02:00
export const setLogLevel = function (level = 'fatal') {
if (isNaN(level)) {
level = level.toLowerCase();
if (LEVELS[level] !== undefined) {
level = LEVELS[level];
}
}
2021-02-06 15:56:05 +05:30
log.trace = () => {};
log.debug = () => {};
log.info = () => {};
log.warn = () => {};
log.error = () => {};
log.fatal = () => {};
2017-09-10 16:56:10 +08:00
if (level <= LEVELS.fatal) {
2021-02-06 15:56:05 +05:30
log.fatal = console.error
? console.error.bind(console, format('FATAL'), 'color: orange')
: console.log.bind(console, '\x1b[35m', format('FATAL'));
2017-04-11 23:46:11 +08:00
}
2017-09-10 16:56:10 +08:00
if (level <= LEVELS.error) {
2021-02-06 15:56:05 +05:30
log.error = console.error
? console.error.bind(console, format('ERROR'), 'color: orange')
: console.log.bind(console, '\x1b[31m', format('ERROR'));
2017-04-11 23:46:11 +08:00
}
2017-09-10 16:56:10 +08:00
if (level <= LEVELS.warn) {
2021-02-06 15:56:05 +05:30
log.warn = console.warn
? console.warn.bind(console, format('WARN'), 'color: orange')
: console.log.bind(console, `\x1b[33m`, format('WARN'));
2017-04-11 23:46:11 +08:00
}
2017-09-10 16:56:10 +08:00
if (level <= LEVELS.info) {
2021-02-06 15:56:05 +05:30
log.info = console.info // ? console.info.bind(console, '\x1b[34m', format('INFO'), 'color: blue')
? console.info.bind(console, format('INFO'), 'color: lightblue')
: console.log.bind(console, '\x1b[34m', format('INFO'));
2017-04-11 23:46:11 +08:00
}
2017-09-10 16:56:10 +08:00
if (level <= LEVELS.debug) {
2021-02-06 15:56:05 +05:30
log.debug = console.debug
? console.debug.bind(console, format('DEBUG'), 'color: lightgreen')
: console.log.bind(console, '\x1b[32m', format('DEBUG'));
2017-04-11 22:14:25 +08:00
}
2019-09-12 12:58:57 -07:00
};
2017-09-10 19:41:34 +08:00
2021-07-15 11:35:12 +02:00
const format = (level) => {
const time = moment().format('ss.SSS');
return `%c${time} : ${level} : `;
2019-09-12 12:58:57 -07:00
};