Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Replace logrus with zap logger #13

Merged
merged 4 commits into from
Sep 29, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 5 additions & 6 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,12 @@ module github.com/omec-project/ngap
go 1.21

require (
github.com/antonfisher/nested-logrus-formatter v1.3.1
github.com/omec-project/aper v1.1.3
github.com/omec-project/openapi v1.2.0
github.com/sirupsen/logrus v1.8.1
github.com/omec-project/aper v1.2.0
github.com/omec-project/openapi v1.3.0
go.uber.org/zap v1.27.0
)

require (
github.com/golang-jwt/jwt v3.2.1+incompatible // indirect
golang.org/x/sys v0.0.0-20210423082822-04245dca01da // indirect
github.com/golang-jwt/jwt v3.2.2+incompatible // indirect
go.uber.org/multierr v1.10.0 // indirect
)
34 changes: 16 additions & 18 deletions go.sum
Original file line number Diff line number Diff line change
@@ -1,22 +1,20 @@
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.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/golang-jwt/jwt v3.2.1+incompatible h1:73Z+4BJcrTC+KczS6WvTPvRGOp1WmfEP4Q1lOd9Z/+c=
github.com/golang-jwt/jwt v3.2.1+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I=
github.com/omec-project/aper v1.1.3 h1:ELtPkBmmcbtyu1BEnxUik70R3CWyW2ylBzlhBUOy3k0=
github.com/omec-project/aper v1.1.3/go.mod h1:WrF0UXIX0iYck3Fc2DZKDupd3Wip9GJkTRzcKVCHguk=
github.com/omec-project/openapi v1.2.0 h1:7Wvi0HLvhvxMyQtqGcqtMCPC/0QCGAFP5htrXCfWxRc=
github.com/omec-project/openapi v1.2.0/go.mod h1:hjU13MB1m9MHTko87JfsUNCdeD6/m6VkNZDD8Vq5U9M=
github.com/golang-jwt/jwt v3.2.2+incompatible h1:IfV12K8xAKAnZqdXVzCZ+TOjboZ2keLg81eXfW3O+oY=
github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I=
github.com/omec-project/aper v1.2.0 h1:URQMAJ0hr4XUGnQht49kth9NtZWYHv/MLjvxEVPlaCg=
github.com/omec-project/aper v1.2.0/go.mod h1:CbCZ0uNmcD3XA4YM6wBwpqP1PYtGAaC3RqLL4B5gG2U=
github.com/omec-project/openapi v1.3.0 h1:+2qgh4cVHB0kbtkVbOg76Klru5ZEcIe+ysi+IYHho2E=
github.com/omec-project/openapi v1.3.0/go.mod h1:cR6Iharp2TLOzEmskQ/EdCVFZnpKh0zTvUSSuyXAYLE=
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.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE=
github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210423082822-04245dca01da h1:b3NXsE2LusjYGGjL5bxEVZZORm/YEFFrWFjR8eFrw/c=
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
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=
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=
59 changes: 34 additions & 25 deletions logger/logger.go
Original file line number Diff line number Diff line change
@@ -1,46 +1,55 @@
// Copyright 2019 Communication Service/Software Laboratory, National Chiao Tung University (free5gc.org)
// SPDX-FileCopyrightText: 2024 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
NgapLog *logrus.Entry
log *zap.Logger
NgapLog *zap.SugaredLogger
atomicLevel zap.AtomicLevel
)

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

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"},
}

NgapLog = log.WithFields(logrus.Fields{"component": "LIB", "category": "NGAP"})
}
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"

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

func GetLogger() *logrus.Logger {
return log
NgapLog = log.Sugar().With("component", "LIB", "category", "NGAP")
}

func SetLogLevel(level logrus.Level) {
NgapLog.Infoln("set log level :", level)
log.SetLevel(level)
func GetLogger() *zap.Logger {
return log
}

func SetReportCaller(enable bool) {
NgapLog.Infoln("set report call :", enable)
log.SetReportCaller(enable)
// SetLogLevel: set the log level (panic|fatal|error|warn|info|debug)
func SetLogLevel(level zapcore.Level) {
NgapLog.Infoln("set log level:", level)
atomicLevel.SetLevel(level)
}
4 changes: 2 additions & 2 deletions ngapConvert/AmfId.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,12 @@ func AmfIdToNgap(amfId string) (regionId, setId, ptrId aper.BitString) {
setId = HexToBitString(amfId[2:5], 10)
tmpByte, err := hex.DecodeString(amfId[4:])
if err != nil {
logger.NgapLog.Warningln("AmfId From Models To NGAP Error: ", err.Error())
logger.NgapLog.Warnf("amfId From Models To NGAP Error: %v", err)
gab-arrobo marked this conversation as resolved.
Show resolved Hide resolved
return
}
shiftByte, err := aper.GetBitString(tmpByte, 2, 6)
if err != nil {
logger.NgapLog.Warningln("AmfId From Models To NGAP Error: ", err.Error())
logger.NgapLog.Warnf("amfId From Models To NGAP Error: %v", err)
return
}
ptrId.BitLength = 6
Expand Down
4 changes: 2 additions & 2 deletions ngapConvert/BitString.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ func BitStringToHex(bitString *aper.BitString) (hexString string) {
func HexToBitString(hexString string, bitLength int) (bitString aper.BitString) {
hexLen := len(hexString)
if hexLen != (bitLength+3)/4 {
logger.NgapLog.Warningln("hexLen[", hexLen, "] doesn't match bitLength[", bitLength, "]")
logger.NgapLog.Warnf("hexLen[%d] doesn't match bitLength[%d]", hexLen, bitLength)
return
}
if hexLen%2 == 1 {
Expand All @@ -44,7 +44,7 @@ func HexToBitString(hexString string, bitLength int) (bitString aper.BitString)
func ByteToBitString(byteArray []byte, bitLength int) (bitString aper.BitString) {
byteLen := (bitLength + 7) / 8
if byteLen > len(byteArray) {
logger.NgapLog.Warningln("bitLength[", bitLength, "] is beyond byteArray size[", len(byteArray), "]")
logger.NgapLog.Warnf("bitLength[%d] is beyond byteArray size[%d]", bitLength, len(byteArray))
return
}
bitString.Bytes = byteArray
Expand Down
2 changes: 1 addition & 1 deletion ngapConvert/IpAddress.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ func IPAddressToNgap(ipv4Addr, ipv6Addr string) ngapType.TransportLayerAddress {
var ipAddr ngapType.TransportLayerAddress

if ipv4Addr == "" && ipv6Addr == "" {
logger.NgapLog.Warningln("IPAddressToNgap: Both ipv4 & ipv6 are nil string")
logger.NgapLog.Warnln("IPAddressToNgap: Both ipv4 and ipv6 are nil string")
return ipAddr
}

Expand Down
2 changes: 1 addition & 1 deletion ngapConvert/PlmnId.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ func PlmnIdToNgap(modelsPlmnid models.PlmnId) ngapType.PLMNIdentity {

var ngapPlmnId ngapType.PLMNIdentity
if plmnId, err := hex.DecodeString(hexString); err != nil {
logger.NgapLog.Warnf("Decode plmn failed: %+v", err)
logger.NgapLog.Warnf("decode plmn failed: %+v", err)
} else {
ngapPlmnId.Value = plmnId
}
Expand Down
2 changes: 1 addition & 1 deletion ngapConvert/SNssai.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ func SNssaiToNgap(modelsSnssai models.Snssai) ngapType.SNSSAI {
if modelsSnssai.Sd != "" {
ngapSnssai.SD = new(ngapType.SD)
if sdTmp, err := hex.DecodeString(modelsSnssai.Sd); err != nil {
logger.NgapLog.Warnf("Decode snssai.sd failed: %+v", err)
logger.NgapLog.Warnf("decode snssai.sd failed: %+v", err)
} else {
ngapSnssai.SD.Value = sdTmp
}
Expand Down
2 changes: 1 addition & 1 deletion ngapConvert/TAI.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ func TaiToNgap(tai models.Tai) ngapType.TAI {

ngapTai.PLMNIdentity = PlmnIdToNgap(*tai.PlmnId)
if tac, err := hex.DecodeString(tai.Tac); err != nil {
logger.NgapLog.Warnf("Decode TAC failed: %+v", err)
logger.NgapLog.Warnf("decode TAC failed: %+v", err)
} else {
ngapTai.TAC.Value = tac
}
Expand Down
2 changes: 1 addition & 1 deletion ngapConvert/TimeStamp.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ RFC 5905 Section 6 https://tools.ietf.org/html/rfc5905#section-6
*/
func TimeStampToInt32(timeStampNgap aper.OctetString) (timeStamp int32) {
if len(timeStampNgap) != 4 {
logger.NgapLog.Error("TimeStampToInt32: the size of OctetString is not 4")
logger.NgapLog.Errorln("timeStampToInt32: the size of OctetString is not 4")
}

timeStamp = int32(binary.BigEndian.Uint32(timeStampNgap))
Expand Down
10 changes: 5 additions & 5 deletions ngapConvert/TraceData.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,15 +23,15 @@ func TraceDataToNgap(traceData models.TraceData, trsr string) ngapType.TraceActi
var traceActivation ngapType.TraceActivation

if len(trsr) != 4 {
logger.NgapLog.Warningln("Trace Recording Session Reference should be 2 octets")
logger.NgapLog.Warnln("trace Recording Session Reference should be 2 octets")
return traceActivation
}

// NG-RAN Trace ID (left most 6 octet Trace Reference + last 2 octet Trace Recoding Session Reference)
subStringSlice := strings.Split(traceData.TraceRef, "-")

if len(subStringSlice) != 2 {
logger.NgapLog.Warningln("TraceRef format is not correct")
logger.NgapLog.Warnln("traceRef format is not correct")
return traceActivation
}

Expand All @@ -40,7 +40,7 @@ func TraceDataToNgap(traceData models.TraceData, trsr string) ngapType.TraceActi
plmnID.Mnc = subStringSlice[0][3:]
var traceID []byte
if traceIDTmp, err := hex.DecodeString(subStringSlice[1]); err != nil {
logger.NgapLog.Warnf("")
logger.NgapLog.Warnf("traceIDTmp is empty")
} else {
traceID = traceIDTmp
}
Expand All @@ -49,7 +49,7 @@ func TraceDataToNgap(traceData models.TraceData, trsr string) ngapType.TraceActi
traceReference := append(tmp.Value, traceID...)
var trsrNgap []byte
if trsrNgapTmp, err := hex.DecodeString(trsr); err != nil {
logger.NgapLog.Warnf("Decode trsr failed: %+v", err)
logger.NgapLog.Warnf("decode trsr failed: %+v", err)
} else {
trsrNgap = trsrNgapTmp
}
Expand All @@ -61,7 +61,7 @@ func TraceDataToNgap(traceData models.TraceData, trsr string) ngapType.TraceActi
// Interfaces To Trace
var interfacesToTrace []byte
if interfacesToTraceTmp, err := hex.DecodeString(traceData.InterfaceList); err != nil {
logger.NgapLog.Warnf("Decode Interface failed: %+v", err)
logger.NgapLog.Warnf("decode Interface failed: %+v", err)
} else {
interfacesToTrace = interfacesToTraceTmp
}
Expand Down
2 changes: 1 addition & 1 deletion ngapConvert/UEAmbr.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import (
func UEAmbrToInt64(modelAmbr string) int64 {
tok := strings.Split(modelAmbr, " ")
if ambr, err := strconv.ParseFloat(tok[0], 64); err != nil {
logger.NgapLog.Warnf("Parse AMBR failed %+v", err)
logger.NgapLog.Warnf("parse AMBR failed %+v", err)
return int64(0)
} else {
return int64(ambr * getUnit(tok[1]))
Expand Down
Loading