@@ -571,8 +571,14 @@ func (s *Shell) executeCommand(
571
571
tracedEnv := env .FromSlice (cmd .Env )
572
572
s .injectTraceCtx (ctx , tracedEnv )
573
573
cmd .Env = tracedEnv .ToSlice ()
574
- logToSpanWriter := & spanMakerWriter {w : w , ctx : ctx , span : nil }
575
- defer func () { logToSpanWriter .FinishIfActive () }()
574
+ writer := w
575
+ writerCloser := func () {}
576
+ if s .TraceLogGroups {
577
+ logToSpanWriter := & spanMakerWriter {w : w , ctx : ctx , span : nil }
578
+ writer = logToSpanWriter
579
+ writerCloser = func () { logToSpanWriter .FinishIfActive () }
580
+ }
581
+ defer writerCloser ()
576
582
577
583
s .cmdLock .Lock ()
578
584
s .cmd = cmd
@@ -592,11 +598,11 @@ func (s *Shell) executeCommand(
592
598
// Modify process config based on execution flags
593
599
if flags .PTY {
594
600
cfg .PTY = true
595
- cfg .Stdout = logToSpanWriter
601
+ cfg .Stdout = writer
596
602
} else {
597
603
// Show stdout if requested or via debug
598
604
if flags .Stdout {
599
- cfg .Stdout = logToSpanWriter
605
+ cfg .Stdout = writer
600
606
} else if s .Debug {
601
607
stdOutStreamer := NewLoggerStreamer (s .Logger )
602
608
defer stdOutStreamer .Close ()
@@ -605,7 +611,7 @@ func (s *Shell) executeCommand(
605
611
606
612
// Show stderr if requested or via debug
607
613
if flags .Stderr {
608
- cfg .Stderr = logToSpanWriter
614
+ cfg .Stderr = writer
609
615
} else if s .Debug {
610
616
stdErrStreamer := NewLoggerStreamer (s .Logger )
611
617
defer stdErrStreamer .Close ()
0 commit comments