@@ -122,12 +122,21 @@ function getClient() {
122122 url : databaseUrl . href ,
123123 } ,
124124 } ,
125- // @ts -expect-error
126125 log : [
126+ // events
127127 {
128- emit : "stdout " ,
128+ emit : "event " ,
129129 level : "error" ,
130130 } ,
131+ {
132+ emit : "event" ,
133+ level : "info" ,
134+ } ,
135+ {
136+ emit : "event" ,
137+ level : "warn" ,
138+ } ,
139+ // stdout
131140 {
132141 emit : "stdout" ,
133142 level : "info" ,
@@ -136,16 +145,60 @@ function getClient() {
136145 emit : "stdout" ,
137146 level : "warn" ,
138147 } ,
139- ] . concat (
140- process . env . VERBOSE_PRISMA_LOGS === "1"
148+ ...( ( process . env . PRISMA_ERRORS_STDOUT_ENABLED === "1"
149+ ? [
150+ {
151+ emit : "stdout" ,
152+ level : "error" ,
153+ } ,
154+ ]
155+ : [ ] ) satisfies Prisma . LogDefinition [ ] ) ,
156+ // verbose
157+ ...( ( process . env . VERBOSE_PRISMA_LOGS === "1"
141158 ? [
142- { emit : "event" , level : "query" } ,
143- { emit : "stdout" , level : "query" } ,
159+ {
160+ emit : "event" ,
161+ level : "query" ,
162+ } ,
163+ {
164+ emit : "stdout" ,
165+ level : "query" ,
166+ } ,
144167 ]
145- : [ ]
146- ) ,
168+ : [ ] ) satisfies Prisma . LogDefinition [ ] ) ,
169+ ] ,
147170 } ) ;
148171
172+ client . $on ( "info" , ( log ) => {
173+ logger . info ( "PrismaClient info" , {
174+ clientType : "writer" ,
175+ timestamp : log . timestamp ,
176+ message : log . message ,
177+ target : log . target ,
178+ } ) ;
179+ } ) ;
180+
181+ client . $on ( "warn" , ( log ) => {
182+ logger . warn ( "PrismaClient warn" , {
183+ clientType : "writer" ,
184+ timestamp : log . timestamp ,
185+ message : log . message ,
186+ target : log . target ,
187+ } ) ;
188+ } ) ;
189+
190+ // Only use structured logging for errors if we're not already logging them to stdout
191+ if ( process . env . PRISMA_ERRORS_STDOUT_ENABLED !== "1" ) {
192+ client . $on ( "error" , ( log ) => {
193+ logger . error ( "PrismaClient error" , {
194+ clientType : "writer" ,
195+ timestamp : log . timestamp ,
196+ message : log . message ,
197+ target : log . target ,
198+ } ) ;
199+ } ) ;
200+ }
201+
149202 // connect eagerly
150203 client . $connect ( ) ;
151204
@@ -174,12 +227,21 @@ function getReplicaClient() {
174227 url : replicaUrl . href ,
175228 } ,
176229 } ,
177- // @ts -expect-error
178230 log : [
231+ // events
179232 {
180- emit : "stdout " ,
233+ emit : "event " ,
181234 level : "error" ,
182235 } ,
236+ {
237+ emit : "event" ,
238+ level : "info" ,
239+ } ,
240+ {
241+ emit : "event" ,
242+ level : "warn" ,
243+ } ,
244+ // stdout
183245 {
184246 emit : "stdout" ,
185247 level : "info" ,
@@ -188,16 +250,60 @@ function getReplicaClient() {
188250 emit : "stdout" ,
189251 level : "warn" ,
190252 } ,
191- ] . concat (
192- process . env . VERBOSE_PRISMA_LOGS === "1"
253+ ...( ( process . env . PRISMA_ERRORS_STDOUT_ENABLED === "1"
254+ ? [
255+ {
256+ emit : "stdout" ,
257+ level : "error" ,
258+ } ,
259+ ]
260+ : [ ] ) satisfies Prisma . LogDefinition [ ] ) ,
261+ // verbose
262+ ...( ( process . env . VERBOSE_PRISMA_LOGS === "1"
193263 ? [
194- { emit : "event" , level : "query" } ,
195- { emit : "stdout" , level : "query" } ,
264+ {
265+ emit : "event" ,
266+ level : "query" ,
267+ } ,
268+ {
269+ emit : "stdout" ,
270+ level : "query" ,
271+ } ,
196272 ]
197- : [ ]
198- ) ,
273+ : [ ] ) satisfies Prisma . LogDefinition [ ] ) ,
274+ ] ,
199275 } ) ;
200276
277+ replicaClient . $on ( "info" , ( log ) => {
278+ logger . info ( "PrismaClient info" , {
279+ clientType : "reader" ,
280+ timestamp : log . timestamp ,
281+ message : log . message ,
282+ target : log . target ,
283+ } ) ;
284+ } ) ;
285+
286+ replicaClient . $on ( "warn" , ( log ) => {
287+ logger . warn ( "PrismaClient warn" , {
288+ clientType : "reader" ,
289+ timestamp : log . timestamp ,
290+ message : log . message ,
291+ target : log . target ,
292+ } ) ;
293+ } ) ;
294+
295+ // Only use structured logging for errors if we're not already logging them to stdout
296+ if ( process . env . PRISMA_ERRORS_STDOUT_ENABLED !== "1" ) {
297+ replicaClient . $on ( "error" , ( log ) => {
298+ logger . error ( "PrismaClient error" , {
299+ clientType : "reader" ,
300+ timestamp : log . timestamp ,
301+ message : log . message ,
302+ target : log . target ,
303+ } ) ;
304+ } ) ;
305+ }
306+
201307 // connect eagerly
202308 replicaClient . $connect ( ) ;
203309
0 commit comments