Skip to content

Commit

Permalink
Replace logrus with zap logger (#3)
Browse files Browse the repository at this point in the history
Signed-off-by: Arrobo, Gabriel <[email protected]>
  • Loading branch information
gab-arrobo authored Oct 3, 2024
1 parent 0053836 commit d7ca287
Show file tree
Hide file tree
Showing 8 changed files with 66 additions and 61 deletions.
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ RUN if [ "$DEBUG_TOOLS" = "true" ]; then \
fi

# Set working dir
WORKDIR /upfadapter
WORKDIR /aether

# Copy executable and default certs
COPY --from=builder /go/src/upfadapter/bin/* .
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.5.2-dev
2.0.0
5 changes: 2 additions & 3 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,12 @@ module github.com/omec-project/upfadapter
go 1.21

require (
github.com/antonfisher/nested-logrus-formatter v1.3.1
github.com/pkg/errors v0.9.1
github.com/sirupsen/logrus v1.9.3
github.com/wmnsk/go-pfcp v0.0.24
go.uber.org/zap v1.27.0
)

require (
github.com/stretchr/testify v1.9.0 // indirect
golang.org/x/sys v0.18.0 // indirect
go.uber.org/multierr v1.10.0 // indirect
)
18 changes: 6 additions & 12 deletions go.sum
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
github.com/antonfisher/nested-logrus-formatter v1.3.1 h1:NFJIr+pzwv5QLHTPyKz9UMEoHck02Q9L0FP13b/xSbQ=
github.com/antonfisher/nested-logrus-formatter v1.3.1/go.mod h1:6WTfyWFkBc9+zyBaKIqRrg/KwMqBbodBjgbHjDz7zjA=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
Expand All @@ -9,18 +6,15 @@ github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
github.com/wmnsk/go-pfcp v0.0.24 h1:sv4F3U/IphsPUMXMkTJW877CRvXZ1sF5onWHGBvxx/A=
github.com/wmnsk/go-pfcp v0.0.24/go.mod h1:8EUVvOzlz25wkUs9D8STNAs5zGyIo5xEUpHQOUZ/iSg=
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4=
golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
go.uber.org/multierr v1.10.0 h1:S0h4aNzvfcFsC3dRF1jLoaov7oRaKqRGC/pUEJ2yvPQ=
go.uber.org/multierr v1.10.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8=
go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
64 changes: 38 additions & 26 deletions logger/logger.go
Original file line number Diff line number Diff line change
@@ -1,47 +1,59 @@
// SPDX-FileCopyrightText: 2022-present Intel Corporation
//
// SPDX-License-Identifier: Apache-2.0
//

package logger

import (
"time"

formatter "github.com/antonfisher/nested-logrus-formatter"
"github.com/sirupsen/logrus"
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
)

var (
log *logrus.Logger
AppLog *logrus.Entry
PfcpLog *logrus.Entry
CfgLog *logrus.Entry
log *zap.Logger
AppLog *zap.SugaredLogger
PfcpLog *zap.SugaredLogger
CfgLog *zap.SugaredLogger
atomicLevel zap.AtomicLevel
)

func init() {
log = logrus.New()
log.SetReportCaller(true)

log.Formatter = &formatter.Formatter{
TimestampFormat: time.RFC3339,
TrimMessages: true,
NoFieldsSpace: true,
HideKeys: true,
FieldsOrder: []string{"component", "category"},
atomicLevel = zap.NewAtomicLevelAt(zap.InfoLevel)
config := zap.Config{
Level: atomicLevel,
Development: false,
Encoding: "console",
EncoderConfig: zap.NewProductionEncoderConfig(),
OutputPaths: []string{"stdout"},
ErrorOutputPaths: []string{"stderr"},
}

AppLog = log.WithFields(logrus.Fields{"component": "UADP", "category": "App"})
PfcpLog = log.WithFields(logrus.Fields{"component": "UADP", "category": "Pfcp"})
CfgLog = log.WithFields(logrus.Fields{"component": "UADP", "category": "Config"})
config.EncoderConfig.TimeKey = "timestamp"
config.EncoderConfig.EncodeTime = zapcore.ISO8601TimeEncoder
config.EncoderConfig.LevelKey = "level"
config.EncoderConfig.EncodeLevel = zapcore.CapitalLevelEncoder
config.EncoderConfig.CallerKey = "caller"
config.EncoderConfig.EncodeCaller = zapcore.ShortCallerEncoder
config.EncoderConfig.MessageKey = "message"
config.EncoderConfig.StacktraceKey = ""

var err error
log, err = config.Build()
if err != nil {
panic(err)
}

log.SetLevel(logrus.DebugLevel)
AppLog = log.Sugar().With("component", "UADP", "category", "App")
PfcpLog = log.Sugar().With("component", "UADP", "category", "Pfcp")
CfgLog = log.Sugar().With("component", "UADP", "category", "Config")
}

func SetLogLevel(level logrus.Level) {
log.SetLevel(level)
func GetLogger() *zap.Logger {
return log
}

func SetReportCaller(set bool) {
log.SetReportCaller(set)
// SetLogLevel: set the log level (panic|fatal|error|warn|info|debug)
func SetLogLevel(level zapcore.Level) {
AppLog.Infoln("set log level:", level)
atomicLevel.SetLevel(level)
}
20 changes: 10 additions & 10 deletions pfcp/udp/transaction.go
Original file line number Diff line number Diff line change
Expand Up @@ -84,32 +84,32 @@ func NewTransaction(pfcpMSG message.Message, binaryMSG []byte, Conn *net.UDPConn
tx.TxType = SendingResponse
tx.ConsumerAddr = DestAddr.String()
}
logger.PfcpLog.Tracef("New Transaction SEQ[%d] DestAddr[%s]", tx.SequenceNumber, DestAddr.String())
logger.PfcpLog.Debugf("new Transaction SEQ[%d] DestAddr[%s]", tx.SequenceNumber, DestAddr.String())
return tx
}

func (transaction *Transaction) Start() error {
logger.PfcpLog.Tracef("Start Transaction [%d]\n", transaction.SequenceNumber)
logger.PfcpLog.Debugf("start Transaction [%d]", transaction.SequenceNumber)

if transaction.TxType == SendingRequest {
for iter := 0; iter < NumOfResend; iter++ {
timer := time.NewTimer(ResendRequestTimeOutPeriod * time.Second)
_, err := transaction.Conn.WriteToUDP(transaction.SendMsg, transaction.DestAddr)
if err != nil {
logger.PfcpLog.Warnf("Request Transaction [%d]: %s\n", transaction.SequenceNumber, err)
logger.PfcpLog.Warnf("request Transaction [%d]: %s", transaction.SequenceNumber, err)
return err
}

select {
case event := <-transaction.EventChannel:

if event == ReceiveValidResponse {
logger.PfcpLog.Tracef("Request Transaction [%d]: receive valid response\n", transaction.SequenceNumber)
logger.PfcpLog.Debugf("request Transaction [%d]: receive valid response", transaction.SequenceNumber)
return nil
}
case <-timer.C:
logger.PfcpLog.Tracef("Request Transaction [%d]: timeout expire\n", transaction.SequenceNumber)
logger.PfcpLog.Tracef("Request Transaction [%d]: Resend packet\n", transaction.SequenceNumber)
logger.PfcpLog.Debugf("request Transaction [%d]: timeout expire", transaction.SequenceNumber)
logger.PfcpLog.Debugf("request Transaction [%d]: Resend packet", transaction.SequenceNumber)
continue
}
}
Expand All @@ -121,20 +121,20 @@ func (transaction *Transaction) Start() error {
for iter := 0; iter < NumOfResend; iter++ {
_, err := transaction.Conn.WriteToUDP(transaction.SendMsg, transaction.DestAddr)
if err != nil {
logger.PfcpLog.Warnf("Response Transaction [%d]: sending error\n", transaction.SequenceNumber)
logger.PfcpLog.Warnf("response Transaction [%d]: sending error", transaction.SequenceNumber)
return err
}

select {
case event := <-transaction.EventChannel:

if event == ReceiveResendRequest {
logger.PfcpLog.Tracef("Response Transaction [%d]: receive resend request\n", transaction.SequenceNumber)
logger.PfcpLog.Tracef("Response Transaction [%d]: Resend packet\n", transaction.SequenceNumber)
logger.PfcpLog.Debugf("response Transaction [%d]: receive resend request", transaction.SequenceNumber)
logger.PfcpLog.Debugf("response Transaction [%d]: Resend packet", transaction.SequenceNumber)
continue
}
case <-timer.C:
logger.PfcpLog.Tracef("Response Transaction [%d]: timeout expire\n", transaction.SequenceNumber)
logger.PfcpLog.Debugf("response Transaction [%d]: timeout expire", transaction.SequenceNumber)
return errors.Errorf("response timeout, seq [%d]", transaction.SequenceNumber)
}
}
Expand Down
12 changes: 6 additions & 6 deletions pfcp/udp/udp.go
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ func SendPfcp(msg message.Message, addr *net.UDPAddr, eventData interface{}) err
tx := NewTransaction(msg, buf, Server.Conn, addr, eventData)
err = PutTransaction(tx)
if err != nil {
logger.PfcpLog.Errorf("Failed to send PFCP message: %v", err)
logger.PfcpLog.Errorf("failed to send PFCP message: %v", err)
return err
}
go startTxLifeCycle(tx)
Expand Down Expand Up @@ -209,14 +209,14 @@ func Run(Dispatch func(message.Message)) {
}
conn, err := net.ListenUDP("udp", addr)
if err != nil {
logger.PfcpLog.Errorf("Failed to listen on %s: %v", addr.String(), err)
logger.PfcpLog.Errorf("failed to listen on %s: %v", addr.String(), err)
return
}
Server = &PfcpServer{
Addr: addr,
Conn: conn,
}
logger.PfcpLog.Infof("Listen on %s", addr.String())
logger.PfcpLog.Infof("listen on %s", addr.String())

go func() {
for {
Expand All @@ -225,7 +225,7 @@ func Run(Dispatch func(message.Message)) {
if err.Error() == "Receive resend PFCP request" {
logger.PfcpLog.Infoln(err)
} else {
logger.PfcpLog.Warnf("Read PFCP error: %v", err)
logger.PfcpLog.Warnf("read PFCP error: %v", err)
}
continue
}
Expand All @@ -246,9 +246,9 @@ func removeTransaction(tx *Transaction) error {
if txTmp, exist := txTable.Load(tx.SequenceNumber); exist {
tx = txTmp
if tx.TxType == SendingRequest {
logger.PfcpLog.Debugf("Remove Request Transaction [%d]\n", tx.SequenceNumber)
logger.PfcpLog.Debugf("remove request transaction [%d]", tx.SequenceNumber)
} else if tx.TxType == SendingResponse {
logger.PfcpLog.Debugf("Remove Response Transaction [%d]\n", tx.SequenceNumber)
logger.PfcpLog.Debugf("remove response transaction [%d]", tx.SequenceNumber)
}

txTable.Delete(tx.SequenceNumber)
Expand Down
4 changes: 2 additions & 2 deletions upfadapter.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ import (
func handler(w http.ResponseWriter, req *http.Request) {
reqBody, err := io.ReadAll(req.Body)
if err != nil {
logger.AppLog.Errorf("server: could not read request body: %s\n", err)
logger.AppLog.Errorf("server: could not read request body: %s", err)
http.Error(w, err.Error(), http.StatusInternalServerError)
}

Expand All @@ -39,7 +39,7 @@ func handler(w http.ResponseWriter, req *http.Request) {
return
}

logger.AppLog.Debugf("\n received msg type [%v], upf nodeId [%s], smfIp [%v], msg [%v]",
logger.AppLog.Debugf("received msg type [%v], upf nodeId [%s], smfIp [%v], msg [%v]",
pfcpMessage.MessageType(), udpPodMsg.UpNodeID.NodeIdValue, udpPodMsg.SmfIp, udpPodMsg.Msg)

pfcpJsonRsp, err := pfcp.ForwardPfcpMsgToUpf(pfcpMessage, udpPodMsg.UpNodeID)
Expand Down

0 comments on commit d7ca287

Please sign in to comment.