如何关闭T3 Stack项目中浏览器控制台的TRPC、Prisma查询日志?
关闭T3 Stack中TRPC和Prisma的查询日志
一、关闭TRPC客户端查询日志
TRPC客户端默认会在浏览器控制台输出查询、突变等操作日志,你可以在创建TRPC客户端实例时调整logger配置来关闭:
- 在项目的TRPC客户端初始化文件(通常是
utils/trpc.ts)中,修改客户端配置:
import { createTRPCReact } from "@trpc/react-query"; import { httpBatchLink } from "@trpc/client"; export const trpc = createTRPCReact<AppRouter>(); export const trpcClient = trpc.createClient({ links: [ httpBatchLink({ url: "/api/trpc", }), ], // 完全关闭TRPC客户端的日志输出 logger: false, });
如果需要更精细的控制(比如只保留错误日志),可以自定义logger函数:
logger: { log: () => {}, // 关闭普通日志 warn: () => {}, // 关闭警告日志 error: (args) => console.error(args), // 保留错误日志 },
二、关闭Prisma查询日志
Prisma的查询日志默认输出在服务端控制台,但部分T3开发环境会将服务端日志代理到浏览器控制台。关闭方式如下:
- 修改Prisma Schema配置
在prisma/schema.prisma的datasource块中,设置log为空数组(或指定仅保留关键日志类型):
datasource db { provider = "postgresql" // 替换为你的数据库类型(如mysql、sqlite) url = env("DATABASE_URL") log = [] // 关闭所有日志,如需保留错误日志可改为["error"] }
- 动态配置Prisma客户端(可选)
如果需要根据环境区分日志策略(比如生产环境保留错误日志),可以在创建Prisma客户端时设置:
// server/db.ts import { PrismaClient } from "@prisma/client"; const prisma = new PrismaClient({ log: process.env.NODE_ENV === "production" ? ["error", "warn"] : [], }); export default prisma;
修改完成后,重启开发服务即可生效。
内容的提问来源于stack exchange,提问作者Shubham Nikam
相关产品推荐
相关产品推荐

