UNPKG

trainingpeaks-sdk

Version:
41 lines (40 loc) 1.37 kB
export const createLogger = (config) => { const logLevels = { debug: 0, info: 1, warn: 2, error: 3, }; const currentLevel = logLevels[config.level]; const shouldLog = (level) => { return config.enabled && logLevels[level] >= currentLevel; }; const formatMessage = (level, message) => { const timestamp = new Date().toISOString(); const prefix = config.prefix ? `[${config.prefix}]` : '[TrainingPeaks SDK]'; const messageText = message instanceof Error ? message.message : message; return `${timestamp} ${prefix} [${level.toUpperCase()}] ${messageText}`; }; return { debug: (message, ...args) => { if (shouldLog('debug')) { console.debug(formatMessage('debug', message), ...args); } }, info: (message, ...args) => { if (shouldLog('info')) { console.info(formatMessage('info', message), ...args); } }, warn: (message, ...args) => { if (shouldLog('warn')) { console.warn(formatMessage('warn', message), ...args); } }, error: (message, ...args) => { if (shouldLog('error')) { console.error(formatMessage('error', message), ...args); } }, }; };