brf/server/lib/pino_transport_db.ts

28 lines
725 B
TypeScript

import build from 'pino-abstract-transport'
export default function dbTransport(create) {
return build(async (source) => {
for await (const obj of source) {
// TODO decide how to handle lower log levels
if (obj.level < 50) continue
try {
create({
statusCode: obj.err?.status || 500,
type: obj.err?.type,
message: obj.err?.message,
details: obj.err,
stack: obj.err?.stack,
method: obj.req?.method,
path: obj.req?.url,
headers: obj.req?.headers,
reqId: obj.reqId,
createdAt: new Date(obj.time),
}).catch(console.error)
} catch (e) {
console.error(e)
}
}
})
}