Skip to content

Commit

Permalink
Merge pull request #16 from KaungWai/feature/15-transport-prisma-logs…
Browse files Browse the repository at this point in the history
…-to-fastify

feat(prisma/log): transport prisma logs to fastify
  • Loading branch information
KaungWai authored Sep 14, 2023
2 parents e29bc58 + 106c088 commit afa3680
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 4 deletions.
8 changes: 5 additions & 3 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,17 @@ import env from '@/utils/env'
// logger configs
const logConfigs = {
development: {
level: 'debug',
transport: {
target: 'pino-pretty',
options: {
translateTime: 'HH:MM:ss Z',
ignore: 'pid,hostname',
translateTime: 'yyyy-MM-dd HH:mm:ss.l Z',
},
},
},
production: true,
production: {
level: 'info',
},
}

// server config
Expand Down
39 changes: 38 additions & 1 deletion src/plugins/prisma.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,26 @@ import { PrismaClient } from '@prisma/client'
import { FastifyInstance, FastifyPluginOptions } from 'fastify'
import fs from 'fastify-plugin'

const prisma = new PrismaClient()
const prisma = new PrismaClient({
log: [
{
emit: 'event',
level: 'query',
},
{
emit: 'event',
level: 'info',
},
{
emit: 'event',
level: 'warn',
},
{
emit: 'event',
level: 'error',
},
],
})

declare module 'fastify' {
interface FastifyInstance {
Expand All @@ -11,6 +30,24 @@ declare module 'fastify' {
}

export default fs(async function (server: FastifyInstance, options: FastifyPluginOptions, done: CallableFunction) {
prisma.$on('query', (e) => {
e.query = e.query.replaceAll('"', '')
e.params = e.params.replaceAll('"', "'")
server.log.debug(e, 'prisma query')
})

prisma.$on('info', (e) => {
server.log.info(e, 'prisma info')
})

prisma.$on('warn', (e) => {
server.log.warn(e, 'prisma warning')
})

prisma.$on('error', (e) => {
server.log.error(e, 'prisma error')
})

server.decorate('prisma', prisma)
server.addHook('onClose', (instance) => {
// close db connection on server stop
Expand Down

0 comments on commit afa3680

Please sign in to comment.