| |
| |
| |
| |
|
|
| class Logger { |
| constructor() { |
| this.enabled = true; |
| this.level = this.getLogLevel(); |
| this.prefix = ''; |
| } |
|
|
| |
| |
| |
| |
| getLogLevel() { |
| if (typeof localStorage === 'undefined') return 'info'; |
| |
| |
| return localStorage.getItem('logLevel') || 'info'; |
| } |
|
|
| |
| |
| |
| |
| setLevel(level) { |
| this.level = level; |
| if (typeof localStorage !== 'undefined') { |
| localStorage.setItem('logLevel', level); |
| } |
| } |
|
|
| |
| |
| |
| |
| |
| shouldLog(level) { |
| if (!this.enabled) return false; |
| if (this.level === 'silent') return false; |
| |
| const levels = ['debug', 'info', 'warn', 'error']; |
| const currentIndex = levels.indexOf(this.level); |
| const checkIndex = levels.indexOf(level); |
| |
| return checkIndex >= currentIndex; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| formatMessage(prefix, message) { |
| return prefix ? `[${prefix}] ${message}` : message; |
| } |
|
|
| |
| |
| |
| |
| |
| debug(prefix, ...args) { |
| if (!this.shouldLog('debug')) return; |
| const message = this.formatMessage(prefix, args[0]); |
| console.debug(message, ...args.slice(1)); |
| } |
|
|
| |
| |
| |
| |
| |
| info(prefix, ...args) { |
| if (!this.shouldLog('info')) return; |
| const message = this.formatMessage(prefix, args[0]); |
| console.log(message, ...args.slice(1)); |
| } |
|
|
| |
| |
| |
| |
| |
| warn(prefix, ...args) { |
| if (!this.shouldLog('warn')) return; |
| const message = this.formatMessage(prefix, args[0]); |
| console.warn(message, ...args.slice(1)); |
| } |
|
|
| |
| |
| |
| |
| |
| error(prefix, ...args) { |
| if (!this.shouldLog('error')) return; |
| const message = this.formatMessage(prefix, args[0]); |
| console.error(message, ...args.slice(1)); |
| } |
|
|
| |
| |
| |
| disable() { |
| this.enabled = false; |
| } |
|
|
| |
| |
| |
| enable() { |
| this.enabled = true; |
| } |
| } |
|
|
| |
| const logger = new Logger(); |
|
|
| |
| if (typeof window !== 'undefined') { |
| window.logger = logger; |
| window.setLogLevel = (level) => logger.setLevel(level); |
| } |
|
|
| export default logger; |
|
|
|
|