trainingpeaks-sdk
Version:
TypeScript SDK for TrainingPeaks API integration
41 lines (40 loc) • 1.37 kB
JavaScript
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);
}
},
};
};