github.com/pf-qiu/concourse/v6@v6.7.3-0.20201207032516-1f455d73275f/atc/metric/error_sink_collector.go (about) 1 package metric 2 3 import ( 4 "code.cloudfoundry.org/lager" 5 "github.com/pkg/errors" 6 ) 7 8 type ErrorSinkCollector struct { 9 logger lager.Logger 10 monitor *Monitor 11 } 12 13 func NewErrorSinkCollector(logger lager.Logger, m *Monitor) ErrorSinkCollector { 14 return ErrorSinkCollector{ 15 logger: logger, 16 monitor: m, 17 } 18 } 19 20 func (c *ErrorSinkCollector) Log(f lager.LogFormat) { 21 if f.LogLevel != lager.ERROR { 22 return 23 } 24 25 if errors.Cause(f.Error) == ErrFailedToEmit { 26 return 27 } 28 29 ErrorLog{ 30 Value: 1, 31 Message: f.Message, 32 }.Emit(c.logger, c.monitor) 33 }