28 lines
725 B
TypeScript
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)
|
|
}
|
|
}
|
|
})
|
|
}
|