Skip to content
This repository was archived by the owner on Apr 30, 2025. It is now read-only.
4 changes: 2 additions & 2 deletions accesslog/access_log_suite_test.go
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package accesslog_test

import (
"testing"

. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"

"testing"
)

func TestAccessLog(t *testing.T) {
Expand Down
23 changes: 12 additions & 11 deletions accesslog/dropsonde_logsender.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,31 +2,32 @@ package accesslog

import (
"fmt"
"log/slog"
"strconv"
"time"

"code.cloudfoundry.org/gorouter/accesslog/schema"
"code.cloudfoundry.org/gorouter/config"
goRouterLogger "code.cloudfoundry.org/gorouter/logger"
"github.com/cloudfoundry/dropsonde"
"github.com/cloudfoundry/dropsonde/emitter"
"github.com/cloudfoundry/sonde-go/events"
"github.com/uber-go/zap"
"google.golang.org/protobuf/proto"

"code.cloudfoundry.org/gorouter/accesslog/schema"
"code.cloudfoundry.org/gorouter/config"
log "code.cloudfoundry.org/gorouter/logger"
)

type DropsondeLogSender struct {
eventEmitter dropsonde.EventEmitter
sourceInstance string
logger goRouterLogger.Logger
logger *slog.Logger
}

func (l *DropsondeLogSender) SendAppLog(appID, message string, tags map[string]string) {
if l.sourceInstance == "" || appID == "" {
l.logger.Debug("dropping-loggregator-access-log",
zap.Error(fmt.Errorf("either no appId or source instance present")),
zap.String("appID", appID),
zap.String("sourceInstance", l.sourceInstance),
log.ErrAttr(fmt.Errorf("either no appId or source instance present")),
slog.String("appID", appID),
slog.String("sourceInstance", l.sourceInstance),
)

return
Expand All @@ -45,21 +46,21 @@ func (l *DropsondeLogSender) SendAppLog(appID, message string, tags map[string]s

envelope, err := emitter.Wrap(logMessage, l.eventEmitter.Origin())
if err != nil {
l.logger.Error("error-wrapping-access-log-for-emitting", zap.Error(err))
l.logger.Error("error-wrapping-access-log-for-emitting", log.ErrAttr(err))
return
}

envelope.Tags = tags

if err = l.eventEmitter.EmitEnvelope(envelope); err != nil {
l.logger.Error("error-emitting-access-log-to-writers", zap.Error(err))
l.logger.Error("error-emitting-access-log-to-writers", log.ErrAttr(err))
}
}

func NewLogSender(
c *config.Config,
e dropsonde.EventEmitter,
logger goRouterLogger.Logger,
logger *slog.Logger,
) schema.LogSender {
var dropsondeSourceInstance string

Expand Down
22 changes: 11 additions & 11 deletions accesslog/dropsonde_logsender_test.go
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
package accesslog_test

import (
. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"
"go.uber.org/zap/zapcore"
"google.golang.org/protobuf/proto"

"code.cloudfoundry.org/gorouter/accesslog"
"code.cloudfoundry.org/gorouter/accesslog/fakes"
"code.cloudfoundry.org/gorouter/accesslog/schema"
"code.cloudfoundry.org/gorouter/config"
loggerFakes "code.cloudfoundry.org/gorouter/logger/fakes"
. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"
"google.golang.org/protobuf/proto"
"code.cloudfoundry.org/gorouter/test_util"
)

//go:generate counterfeiter -o fakes/eventemitter.go github.com/cloudfoundry/dropsonde.EventEmitter
Expand All @@ -19,27 +21,25 @@ var _ = Describe("DropsondeLogSender", func() {
logSender schema.LogSender
conf *config.Config
eventEmitter *fakes.FakeEventEmitter
logger *loggerFakes.FakeLogger
logger *test_util.TestLogger
)

BeforeEach(func() {
var err error
conf, err = config.DefaultConfig()
Expect(err).ToNot(HaveOccurred())
conf.Logging.LoggregatorEnabled = true

eventEmitter = &fakes.FakeEventEmitter{}
logger = &loggerFakes.FakeLogger{}
logger = test_util.NewTestLogger("test")

logSender = accesslog.NewLogSender(conf, eventEmitter, logger)
logSender = accesslog.NewLogSender(conf, eventEmitter, logger.Logger)

eventEmitter.OriginReturns("someOrigin")
})

It("emits an envelope", func() {
logSender.SendAppLog("someID", "someMessage", nil)

Expect(logger.ErrorCallCount()).To(Equal(0))
Expect(logger.Lines(zapcore.ErrorLevel)).To(HaveLen(0))
Expect(eventEmitter.EmitEnvelopeCallCount()).To(Equal(1))
logMessage := eventEmitter.EmitEnvelopeArgsForCall(0).LogMessage
Expect(logMessage.AppId).To(Equal(proto.String("someID")))
Expand All @@ -53,7 +53,7 @@ var _ = Describe("DropsondeLogSender", func() {
}
logSender.SendAppLog("someID", "someMessage", tags)

Expect(logger.ErrorCallCount()).To(Equal(0))
Expect(logger.Lines(zapcore.ErrorLevel)).To(HaveLen(0))
Expect(eventEmitter.EmitEnvelopeCallCount()).To(Equal(1))
envelope := eventEmitter.EmitEnvelopeArgsForCall(0)
Expect(envelope.Tags).To(Equal(map[string]string{
Expand Down
18 changes: 8 additions & 10 deletions accesslog/file_and_loggregator_access_logger.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,13 @@ package accesslog
import (
"fmt"
"io"
"log/slog"
"log/syslog"

"github.com/uber-go/zap"
"os"

"code.cloudfoundry.org/gorouter/accesslog/schema"
"code.cloudfoundry.org/gorouter/config"
"code.cloudfoundry.org/gorouter/logger"

"os"
log "code.cloudfoundry.org/gorouter/logger"
)

//go:generate counterfeiter -o fakes/accesslogger.go . AccessLogger
Expand All @@ -36,7 +34,7 @@ type FileAndLoggregatorAccessLogger struct {
disableXFFLogging bool
disableSourceIPLogging bool
redactQueryParams string
logger logger.Logger
logger *slog.Logger
logsender schema.LogSender
}

Expand All @@ -46,7 +44,7 @@ type CustomWriter struct {
PerformTruncate bool
}

func CreateRunningAccessLogger(logger logger.Logger, logsender schema.LogSender, config *config.Config) (AccessLogger, error) {
func CreateRunningAccessLogger(logger *slog.Logger, logsender schema.LogSender, config *config.Config) (AccessLogger, error) {
if config.AccessLog.File == "" && !config.Logging.LoggregatorEnabled {
return &NullAccessLogger{}, nil
}
Expand All @@ -64,7 +62,7 @@ func CreateRunningAccessLogger(logger logger.Logger, logsender schema.LogSender,
if config.AccessLog.File != "" {
file, err := os.OpenFile(config.AccessLog.File, os.O_WRONLY|os.O_APPEND|os.O_CREATE, 0644)
if err != nil {
logger.Error("error-creating-accesslog-file", zap.String("filename", config.AccessLog.File), zap.Error(err))
logger.Error("error-creating-accesslog-file", slog.String("filename", config.AccessLog.File), log.ErrAttr(err))
return nil, err
}

Expand All @@ -74,7 +72,7 @@ func CreateRunningAccessLogger(logger logger.Logger, logsender schema.LogSender,
if config.AccessLog.EnableStreaming {
syslogWriter, err := syslog.Dial(config.Logging.SyslogNetwork, config.Logging.SyslogAddr, syslog.LOG_INFO, config.Logging.Syslog)
if err != nil {
logger.Error("error-creating-syslog-writer", zap.Error(err))
logger.Error("error-creating-syslog-writer", log.ErrAttr(err))
return nil, err
}

Expand All @@ -92,7 +90,7 @@ func (x *FileAndLoggregatorAccessLogger) Run() {
for _, w := range x.writers {
_, err := record.WriteTo(w.Writer)
if err != nil {
x.logger.Error(fmt.Sprintf("error-emitting-access-log-to-writer-%s", w.Name), zap.Error(err))
x.logger.Error(fmt.Sprintf("error-emitting-access-log-to-writer-%s", w.Name), log.ErrAttr(err))
}
}
record.SendLog(x.logsender)
Expand Down
Loading