initial commit
This commit is contained in:
32
server/api/log.post.js
Normal file
32
server/api/log.post.js
Normal file
@@ -0,0 +1,32 @@
|
||||
/**
|
||||
* 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 }
|
||||
})
|
||||
Reference in New Issue
Block a user