33 lines
929 B
JavaScript
33 lines
929 B
JavaScript
/**
|
|
* Client-side logging endpoint.
|
|
* Accepts log messages from the browser and outputs them server-side.
|
|
*/
|
|
export default defineEventHandler(async (event) => {
|
|
// Note: Auth is optional - we rely on session cookie validation if needed
|
|
|
|
const body = await readBody(event).catch(() => ({}))
|
|
const { level, message, data, sessionId, userId } = body
|
|
|
|
const logPrefix = `[CLIENT${sessionId ? `:${sessionId}` : ''}${userId ? `:${userId.slice(0, 8)}` : ''}]`
|
|
const logMessage = data ? `${message} ${JSON.stringify(data)}` : message
|
|
|
|
switch (level) {
|
|
case 'error':
|
|
console.error(logPrefix, logMessage)
|
|
break
|
|
case 'warn':
|
|
console.warn(logPrefix, logMessage)
|
|
break
|
|
case 'info':
|
|
console.log(logPrefix, logMessage)
|
|
break
|
|
case 'debug':
|
|
console.log(logPrefix, logMessage)
|
|
break
|
|
default:
|
|
console.log(logPrefix, logMessage)
|
|
}
|
|
|
|
return { ok: true }
|
|
})
|