| | |
| | |
| | |
| | |
| |
|
| | export class ErrorLogger { |
| | constructor(componentName) { |
| | this.componentName = componentName; |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | log(message, details = {}, error = null) { |
| | const logEntry = { |
| | timestamp: new Date().toISOString(), |
| | component: this.componentName, |
| | level: 'error', |
| | message: message, |
| | details: details, |
| | stack: error?.stack || new Error().stack |
| | }; |
| |
|
| | |
| | console.error(`[${logEntry.timestamp}] [${logEntry.component}] ERROR:`, message); |
| | |
| | if (Object.keys(details).length > 0) { |
| | console.error('Details:', details); |
| | } |
| | |
| | if (error) { |
| | console.error('Original error:', error.message); |
| | console.error('Stack trace:', error.stack); |
| | } |
| |
|
| | return logEntry; |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | logValidationError(field, expected, actual) { |
| | return this.log('Validation Error', { |
| | field: field, |
| | expected: expected, |
| | actual: actual, |
| | type: 'validation' |
| | }); |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | warn(message, details = {}) { |
| | const logEntry = { |
| | timestamp: new Date().toISOString(), |
| | component: this.componentName, |
| | level: 'warning', |
| | message: message, |
| | details: details |
| | }; |
| |
|
| | console.warn(`[${logEntry.timestamp}] [${logEntry.component}] WARNING:`, message); |
| | |
| | if (Object.keys(details).length > 0) { |
| | console.warn('Details:', details); |
| | } |
| |
|
| | return logEntry; |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | info(message, details = {}) { |
| | const logEntry = { |
| | timestamp: new Date().toISOString(), |
| | component: this.componentName, |
| | level: 'info', |
| | message: message, |
| | details: details |
| | }; |
| |
|
| | console.log(`[${logEntry.timestamp}] [${logEntry.component}] INFO:`, message); |
| | |
| | if (Object.keys(details).length > 0) { |
| | console.log('Details:', details); |
| | } |
| |
|
| | return logEntry; |
| | } |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | export function createLogger(componentName) { |
| | return new ErrorLogger(componentName); |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | export function formatValidationErrors(errors) { |
| | if (!errors || errors.length === 0) { |
| | return 'No validation errors'; |
| | } |
| |
|
| | return errors.map((err, index) => { |
| | return `${index + 1}. ${err.field}: Expected ${err.expected}, got ${err.actual}`; |
| | }).join('\n'); |
| | } |
| |
|