43 lines
910 B
Go
43 lines
910 B
Go
|
package origin
|
||
|
|
||
|
import (
|
||
|
"github.com/rs/zerolog"
|
||
|
|
||
|
"github.com/cloudflare/cloudflared/connection"
|
||
|
"github.com/cloudflare/cloudflared/tunnelstate"
|
||
|
)
|
||
|
|
||
|
type ConnAwareLogger struct {
|
||
|
tracker *tunnelstate.ConnTracker
|
||
|
logger *zerolog.Logger
|
||
|
}
|
||
|
|
||
|
func NewConnAwareLogger(logger *zerolog.Logger, observer *connection.Observer) *ConnAwareLogger {
|
||
|
connAwareLogger := &ConnAwareLogger{
|
||
|
tracker: tunnelstate.NewConnTracker(logger),
|
||
|
logger: logger,
|
||
|
}
|
||
|
|
||
|
observer.RegisterSink(connAwareLogger.tracker)
|
||
|
|
||
|
return connAwareLogger
|
||
|
}
|
||
|
|
||
|
func (c *ConnAwareLogger) ReplaceLogger(logger *zerolog.Logger) *ConnAwareLogger {
|
||
|
return &ConnAwareLogger{
|
||
|
tracker: c.tracker,
|
||
|
logger: logger,
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func (c *ConnAwareLogger) ConnAwareLogger() *zerolog.Event {
|
||
|
if c.tracker.CountActiveConns() == 0 {
|
||
|
return c.logger.Error()
|
||
|
}
|
||
|
return c.logger.Warn()
|
||
|
}
|
||
|
|
||
|
func (c *ConnAwareLogger) Logger() *zerolog.Logger {
|
||
|
return c.logger
|
||
|
}
|