@gabriel3615/ta_analysis
Version:
stock ta analysis
56 lines (55 loc) • 1.51 kB
JavaScript
export class Logger {
constructor(options) {
this.level = options.level;
this.prefix = options.prefix;
}
setLevel(level) {
this.level = level;
}
fmt(msg) {
if (!this.prefix)
return msg;
if (typeof msg === 'string')
return `${this.prefix} ${msg}`;
return msg;
}
log(...args) {
if (this.level === 'silent')
return;
// normal 与 verbose 都输出 log
console.log(...args.map(a => this.fmt(a)));
}
info(...args) {
if (this.level === 'silent')
return;
console.log(...args.map(a => this.fmt(a)));
}
verbose(...args) {
if (this.level !== 'verbose')
return;
console.log(...args.map(a => this.fmt(a)));
}
warn(...args) {
if (this.level === 'silent')
return;
console.warn(...args.map(a => this.fmt(a)));
}
error(...args) {
console.error(...args.map(a => this.fmt(a)));
}
}
export function createLogger(level = 'normal', prefix) {
return new Logger({ level, prefix });
}
function readEnvLevel() {
const raw = (process.env.TA_LOG_LEVEL ||
process.env.LOG_LEVEL ||
'').toLowerCase();
if (raw === 'silent' || raw === 'normal' || raw === 'verbose')
return raw;
return 'normal';
}
export const globalLogger = createLogger(readEnvLevel(), '[TA]');
export function setGlobalLogLevel(level) {
globalLogger.setLevel(level);
}