Skip to main content
Prisma Documentation Docs

Search documentation

Type to search this documentation.

On this pageOverview

Logging

Use the PrismaClient log parameter to configure log levels , including warnings, errors, and information about the queries sent to the database.

Prisma Client supports two types of logging:

The simplest way to print all log levels to stdout is to pass in an array LogLevel objects:

const prisma = new PrismaClient({

  log: ["query", "info", "warn", "error"],

});

This is the short form of passing in an array of LogDefinition objects where the value of emit is always stdout:

const prisma = new PrismaClient({

  log: [

    {

      emit: "stdout",

      level: "query",

    },

    {

      emit: "stdout",

      level: "error",

    },

    {

      emit: "stdout",

      level: "info",

    },

    {

      emit: "stdout",

      level: "warn",

    },

  ],

});

To use event-based logging:

  1. Set emit to event for a specific log level, such as query
  2. Use the $on() method to subscribe to the event

The following example subscribes to all query events and write the duration and query to console:

databases"
const prisma = new PrismaClient({

  log: [

    {

      emit: "event",

      level: "query",

    },

    {

      emit: "stdout",

      level: "error",

    },

    {

      emit: "stdout",

      level: "info",

    },

    {

      emit: "stdout",

      level: "warn",

    },

  ],

});

prisma.$on("query", (e) => {

  console.log("Query: " + e.query);

  console.log("Params: " + e.params);

  console.log("Duration: " + e.duration + "ms");

});
Query: SELECT "public"."User"."id", "public"."User"."email", "public"."User"."name" FROM "public"."User" WHERE 1=1 OFFSET $1

Params: [0]

Duration: 3ms

Query: SELECT "public"."Post"."id", "public"."Post"."title", "public"."Post"."authorId" FROM "public"."Post" WHERE "public"."Post"."authorId" IN ($1,$2,$3,$4) OFFSET $5

Params: [2, 7, 18, 29]

Duration: 2ms
title="MongoDB"
const prisma = new PrismaClient({

  log: [

    {

      emit: "event",

      level: "query",

    },

    {

      emit: "stdout",

      level: "error",

    },

    {

      emit: "stdout",

      level: "info",

    },

    {

      emit: "stdout",

      level: "warn",

    },

  ],

});

prisma.$on("query", (e) => {

  console.log("Query: " + e.query);

});
Query: db.User.aggregate([ { $project: { _id: 1, email: 1, name: 1, }, }, ])

Query: db.Post.aggregate([ { $match: { userId: { $in: [ "622f0bbbdf635a42016ee325", ], }, }, }, { $project: { _id: 1, slug: 1, title: 1, body: 1, userId: 1, }, }, ])

The exact event (e) type and the properties available depends on the log level.

Suggest an edit

Propose a replacement for this page. The site team reviews it before applying any changes.

Export
Documentation menu