github.com/pf-qiu/concourse/v6@v6.7.3-0.20201207032516-1f455d73275f/cmd/logging_runner.go (about)

     1  package cmd
     2  
     3  import (
     4  	"os"
     5  
     6  	"code.cloudfoundry.org/lager"
     7  	"github.com/tedsuo/ifrit"
     8  )
     9  
    10  func NewLoggingRunner(logger lager.Logger, runner ifrit.Runner) ifrit.Runner {
    11  	return &loggingRunner{
    12  		logger: logger,
    13  		runner: runner,
    14  	}
    15  }
    16  
    17  type loggingRunner struct {
    18  	logger lager.Logger
    19  	runner ifrit.Runner
    20  }
    21  
    22  func (lr *loggingRunner) Run(signals <-chan os.Signal, ready chan<- struct{}) error {
    23  	err := lr.runner.Run(signals, ready)
    24  	if err != nil {
    25  		lr.logger.Error("logging-runner-exited", err)
    26  	} else {
    27  		lr.logger.Info("logging-runner-exited")
    28  	}
    29  
    30  	return err
    31  }