@@ -571,8 +571,14 @@ func (s *Shell) executeCommand(
571571 tracedEnv := env .FromSlice (cmd .Env )
572572 s .injectTraceCtx (ctx , tracedEnv )
573573 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 ()
576582
577583 s .cmdLock .Lock ()
578584 s .cmd = cmd
@@ -592,11 +598,11 @@ func (s *Shell) executeCommand(
592598 // Modify process config based on execution flags
593599 if flags .PTY {
594600 cfg .PTY = true
595- cfg .Stdout = logToSpanWriter
601+ cfg .Stdout = writer
596602 } else {
597603 // Show stdout if requested or via debug
598604 if flags .Stdout {
599- cfg .Stdout = logToSpanWriter
605+ cfg .Stdout = writer
600606 } else if s .Debug {
601607 stdOutStreamer := NewLoggerStreamer (s .Logger )
602608 defer stdOutStreamer .Close ()
@@ -605,7 +611,7 @@ func (s *Shell) executeCommand(
605611
606612 // Show stderr if requested or via debug
607613 if flags .Stderr {
608- cfg .Stderr = logToSpanWriter
614+ cfg .Stderr = writer
609615 } else if s .Debug {
610616 stdErrStreamer := NewLoggerStreamer (s .Logger )
611617 defer stdErrStreamer .Close ()
0 commit comments