EcoTracker-II / backend /src /utils /logger.js
Akash-Dragon's picture
refactor: restructure project as a monorepo and implement backend API
7e49c4d
Raw
History Blame Contribute Delete
964 Bytes
/**
* Structured logger utility
* Uses console with structured JSON output in production
*/
const isDev = process.env.NODE_ENV !== 'production';
function formatMessage(level, message, meta = {}) {
if (isDev) {
const timestamp = new Date().toISOString();
const prefix = `[${timestamp}] [${level.toUpperCase()}]`;
if (Object.keys(meta).length > 0) {
return `${prefix} ${message} ${JSON.stringify(meta, null, 2)}`;
}
return `${prefix} ${message}`;
}
return JSON.stringify({ timestamp: new Date().toISOString(), level, message, ...meta });
}
const logger = {
error: (message, meta) => console.error(formatMessage('error', message, meta)),
warn: (message, meta) => console.warn(formatMessage('warn', message, meta)),
info: (message, meta) => console.info(formatMessage('info', message, meta)),
debug: (message, meta) => {
if (isDev) console.debug(formatMessage('debug', message, meta));
},
};
export default logger;