@@ -279,7 +279,7 @@ describe('consola integration', () => {
279279 {
280280 timestamp : expect . any ( Number ) ,
281281 level : 'info' ,
282- body : 'Message with args: hello 123 {"key":"value"} [1,2,3] ' ,
282+ body : 'Message with args: hello 123' ,
283283 severity_number : expect . any ( Number ) ,
284284 trace_id : expect . any ( String ) ,
285285 attributes : {
@@ -291,6 +291,7 @@ describe('consola integration', () => {
291291 'server.address' : { value : expect . any ( String ) , type : 'string' } ,
292292 'consola.type' : { value : 'info' , type : 'string' } ,
293293 'consola.level' : { value : 3 , type : 'integer' } ,
294+ key : { value : 'value' , type : 'string' } ,
294295 } ,
295296 } ,
296297 {
@@ -491,4 +492,112 @@ describe('consola integration', () => {
491492
492493 await runner . completed ( ) ;
493494 } ) ;
495+
496+ test ( 'should extract objects as searchable context attributes' , async ( ) => {
497+ const runner = createRunner ( __dirname , 'subject-object-context.ts' )
498+ . expect ( {
499+ log : {
500+ items : [
501+ {
502+ timestamp : expect . any ( Number ) ,
503+ level : 'info' ,
504+ body : 'User logged in' ,
505+ severity_number : expect . any ( Number ) ,
506+ trace_id : expect . any ( String ) ,
507+ attributes : {
508+ 'sentry.origin' : { value : 'auto.log.consola' , type : 'string' } ,
509+ 'sentry.release' : { value : '1.0.0' , type : 'string' } ,
510+ 'sentry.environment' : { value : 'test' , type : 'string' } ,
511+ 'sentry.sdk.name' : { value : 'sentry.javascript.node' , type : 'string' } ,
512+ 'sentry.sdk.version' : { value : expect . any ( String ) , type : 'string' } ,
513+ 'server.address' : { value : expect . any ( String ) , type : 'string' } ,
514+ 'consola.type' : { value : 'info' , type : 'string' } ,
515+ 'consola.level' : { value : 3 , type : 'integer' } ,
516+ userId : { value : 123 , type : 'integer' } ,
517+ sessionId : { value : 'abc-123' , type : 'string' } ,
518+ } ,
519+ } ,
520+ {
521+ timestamp : expect . any ( Number ) ,
522+ level : 'warn' ,
523+ body : 'Payment processed' ,
524+ severity_number : expect . any ( Number ) ,
525+ trace_id : expect . any ( String ) ,
526+ attributes : {
527+ 'sentry.origin' : { value : 'auto.log.consola' , type : 'string' } ,
528+ 'sentry.release' : { value : '1.0.0' , type : 'string' } ,
529+ 'sentry.environment' : { value : 'test' , type : 'string' } ,
530+ 'sentry.sdk.name' : { value : 'sentry.javascript.node' , type : 'string' } ,
531+ 'sentry.sdk.version' : { value : expect . any ( String ) , type : 'string' } ,
532+ 'server.address' : { value : expect . any ( String ) , type : 'string' } ,
533+ 'consola.type' : { value : 'warn' , type : 'string' } ,
534+ 'consola.level' : { value : 1 , type : 'integer' } ,
535+ orderId : { value : 456 , type : 'integer' } ,
536+ amount : { value : 99.99 , type : 'double' } ,
537+ currency : { value : 'USD' , type : 'string' } ,
538+ } ,
539+ } ,
540+ {
541+ timestamp : expect . any ( Number ) ,
542+ level : 'error' ,
543+ body : 'Error occurred in payment module' ,
544+ severity_number : expect . any ( Number ) ,
545+ trace_id : expect . any ( String ) ,
546+ attributes : {
547+ 'sentry.origin' : { value : 'auto.log.consola' , type : 'string' } ,
548+ 'sentry.release' : { value : '1.0.0' , type : 'string' } ,
549+ 'sentry.environment' : { value : 'test' , type : 'string' } ,
550+ 'sentry.sdk.name' : { value : 'sentry.javascript.node' , type : 'string' } ,
551+ 'sentry.sdk.version' : { value : expect . any ( String ) , type : 'string' } ,
552+ 'server.address' : { value : expect . any ( String ) , type : 'string' } ,
553+ 'consola.type' : { value : 'error' , type : 'string' } ,
554+ 'consola.level' : { value : 0 , type : 'integer' } ,
555+ errorCode : { value : 'E001' , type : 'string' } ,
556+ retryable : { value : true , type : 'boolean' } ,
557+ } ,
558+ } ,
559+ {
560+ timestamp : expect . any ( Number ) ,
561+ level : 'debug' ,
562+ body : 'Processing items' ,
563+ severity_number : expect . any ( Number ) ,
564+ trace_id : expect . any ( String ) ,
565+ attributes : {
566+ 'sentry.origin' : { value : 'auto.log.consola' , type : 'string' } ,
567+ 'sentry.release' : { value : '1.0.0' , type : 'string' } ,
568+ 'sentry.environment' : { value : 'test' , type : 'string' } ,
569+ 'sentry.sdk.name' : { value : 'sentry.javascript.node' , type : 'string' } ,
570+ 'sentry.sdk.version' : { value : expect . any ( String ) , type : 'string' } ,
571+ 'server.address' : { value : expect . any ( String ) , type : 'string' } ,
572+ 'consola.type' : { value : 'debug' , type : 'string' } ,
573+ 'consola.level' : { value : 4 , type : 'integer' } ,
574+ 'consola.context.0' : { value : '[1,2,3,4,5]' , type : 'string' } ,
575+ } ,
576+ } ,
577+ {
578+ timestamp : expect . any ( Number ) ,
579+ level : 'info' ,
580+ body : 'Complex data' ,
581+ severity_number : expect . any ( Number ) ,
582+ trace_id : expect . any ( String ) ,
583+ attributes : {
584+ 'sentry.origin' : { value : 'auto.log.consola' , type : 'string' } ,
585+ 'sentry.release' : { value : '1.0.0' , type : 'string' } ,
586+ 'sentry.environment' : { value : 'test' , type : 'string' } ,
587+ 'sentry.sdk.name' : { value : 'sentry.javascript.node' , type : 'string' } ,
588+ 'sentry.sdk.version' : { value : expect . any ( String ) , type : 'string' } ,
589+ 'server.address' : { value : expect . any ( String ) , type : 'string' } ,
590+ 'consola.type' : { value : 'info' , type : 'string' } ,
591+ 'consola.level' : { value : 3 , type : 'integer' } ,
592+ user : { value : '{"id":789,"name":"Jane"}' , type : 'string' } ,
593+ metadata : { value : '{"source":"api"}' , type : 'string' } ,
594+ } ,
595+ } ,
596+ ] ,
597+ } ,
598+ } )
599+ . start ( ) ;
600+
601+ await runner . completed ( ) ;
602+ } ) ;
494603} ) ;
0 commit comments