File tree Expand file tree Collapse file tree 2 files changed +48
-2
lines changed
packages/instrumentation-pino Expand file tree Collapse file tree 2 files changed +48
-2
lines changed Original file line number Diff line number Diff line change @@ -67,10 +67,14 @@ export class PinoInstrumentation extends InstrumentationBase<PinoInstrumentation
6767 if ( origMixin === undefined ) {
6868 logger [ mixinSym ] = otelMixin ;
6969 } else {
70- logger [ mixinSym ] = ( ctx : object , level : number ) => {
70+ logger [ mixinSym ] = (
71+ ctx : object ,
72+ level : number ,
73+ ...rest : unknown [ ]
74+ ) => {
7175 return Object . assign (
7276 otelMixin ( ctx , level ) ,
73- origMixin ( ctx , level )
77+ origMixin ( ctx , level , ... rest )
7478 ) ;
7579 } ;
7680 }
Original file line number Diff line number Diff line change @@ -371,6 +371,48 @@ describe('PinoInstrumentation', () => {
371371 } ) ;
372372 } ) ;
373373
374+ it ( 'propagates parameters to user mixin' , ( ) => {
375+ const logger = pino (
376+ {
377+ name : 'LogLog' ,
378+ mixin : ( mergeObject : object , level : number , logger : Pino . Logger ) => ( {
379+ mixinArgs : {
380+ mergeObject,
381+ level,
382+ logger : {
383+ bindings : logger . bindings ( ) ,
384+ } ,
385+ } ,
386+ mixinProp : 'mixinValue' ,
387+ } ) ,
388+ } ,
389+ process . stdout
390+ ) ;
391+
392+ const childLogger = logger . child ( { childProp : 'childValue' } ) ;
393+
394+ tracer . startActiveSpan ( 'abc' , span => {
395+ childLogger . info ( { objProp : 'objValue' } , 'a message' ) ;
396+ span . end ( ) ;
397+
398+ const record = JSON . parse ( stdoutSpy . firstCall . args [ 0 ] . toString ( ) ) ;
399+ assertRecord ( record , span ) ;
400+ assert . deepStrictEqual ( record [ 'mixinArgs' ] , {
401+ mergeObject : {
402+ objProp : 'objValue' ,
403+ } ,
404+ level : 30 ,
405+ logger : {
406+ bindings : {
407+ childProp : 'childValue' ,
408+ } ,
409+ } ,
410+ } ) ;
411+ assert . strictEqual ( record [ 'mixinProp' ] , 'mixinValue' ) ;
412+ assert . strictEqual ( record [ 'name' ] , 'LogLog' ) ;
413+ } ) ;
414+ } ) ;
415+
374416 it ( 'ensures user mixin values take precedence' , ( ) => {
375417 const logger = pino (
376418 {
You can’t perform that action at this time.
0 commit comments