From 884b2cef54216aa611b579c26afb58762b814a9a Mon Sep 17 00:00:00 2001 From: Mykhailo Lohvynenko Date: Wed, 18 Sep 2024 14:15:42 +0300 Subject: [PATCH] [amqphandler] Check config value to disable log trim Signed-off-by: Mykhailo Lohvynenko --- amqphandler/amqphandler.go | 13 ++++++++----- amqphandler/amqphandler_test.go | 13 +++++++------ communicationmanager.go | 2 +- config/config.go | 2 ++ 4 files changed, 18 insertions(+), 12 deletions(-) diff --git a/amqphandler/amqphandler.go b/amqphandler/amqphandler.go index d60459a3..0439c086 100644 --- a/amqphandler/amqphandler.go +++ b/amqphandler/amqphandler.go @@ -60,6 +60,8 @@ const ( type AmqpHandler struct { //nolint:stylecheck sync.Mutex + trimLogs bool + // MessageChannel channel for amqp messages MessageChannel chan Message @@ -146,12 +148,13 @@ var ( **********************************************************************************************************************/ // New creates new amqp object. -func New() (*AmqpHandler, error) { +func New(trimLogs bool) (*AmqpHandler, error) { log.Debug("New AMQP") handler := &AmqpHandler{ sendChannel: make(chan cloudprotocol.Message, sendChannelSize), pendingChannel: make(chan cloudprotocol.Message, 1), + trimLogs: true, } return handler, nil @@ -776,8 +779,8 @@ func (handler *AmqpHandler) scheduleMessage(data interface{}, important bool) er } } -func getMessageDataForLog(message interface{}, data []byte) string { - if len(data) > maxLenLogMessage && !isMessageImportant(message) { +func (handler *AmqpHandler) getMessageDataForLog(message interface{}, data []byte) string { + if handler.trimLogs && len(data) > maxLenLogMessage && !isMessageImportant(message) { return string(data[:maxLenLogMessage]) + "..." } @@ -793,9 +796,9 @@ func (handler *AmqpHandler) sendMessage( } if handler.sendTry > 1 { - log.WithField("data", getMessageDataForLog(message.Data, data)).Debug("AMQP retry message") + log.WithField("data", handler.getMessageDataForLog(message.Data, data)).Debug("AMQP retry message") } else { - log.WithField("data", getMessageDataForLog(message.Data, data)).Debug("AMQP send message") + log.WithField("data", handler.getMessageDataForLog(message.Data, data)).Debug("AMQP send message") } if handler.sendTry++; handler.sendTry > sendMaxTry { diff --git a/amqphandler/amqphandler_test.go b/amqphandler/amqphandler_test.go index ff0a42cc..8212ab3b 100644 --- a/amqphandler/amqphandler_test.go +++ b/amqphandler/amqphandler_test.go @@ -49,6 +49,7 @@ const ( consumerName = "test_consumer" exchangeName = "test_exchange" systemID = "systemID" + trimLogs = false ) const serviceDiscoveryURL = "http://:8010" @@ -222,7 +223,7 @@ func TestReceiveMessages(t *testing.T) { cryptoContext := &testCryptoContext{} rootfs := "rootfs" - amqpHandler, err := amqphandler.New() + amqpHandler, err := amqphandler.New(trimLogs) if err != nil { t.Fatalf("Can't create amqp: %v", err) } @@ -398,7 +399,7 @@ func TestReceiveMessages(t *testing.T) { func TestSendMessages(t *testing.T) { cryptoContext := &testCryptoContext{} - amqpHandler, err := amqphandler.New() + amqpHandler, err := amqphandler.New(trimLogs) if err != nil { t.Fatalf("Can't create amqp: %v", err) } @@ -886,7 +887,7 @@ func TestSendMessages(t *testing.T) { } func TestConnectionEvents(t *testing.T) { - amqpHandler, err := amqphandler.New() + amqpHandler, err := amqphandler.New(trimLogs) if err != nil { t.Fatalf("Can't create amqp: %v", err) } @@ -931,7 +932,7 @@ func TestConnectionEvents(t *testing.T) { } func TestConnectionEventsError(t *testing.T) { - amqpHandler, err := amqphandler.New() + amqpHandler, err := amqphandler.New(trimLogs) if err != nil { t.Fatalf("Can't create amqp: %v", err) } @@ -963,7 +964,7 @@ func TestConnectionEventsError(t *testing.T) { func TestSendMultipleMessages(t *testing.T) { const numMessages = 1000 - amqpHandler, err := amqphandler.New() + amqpHandler, err := amqphandler.New(trimLogs) if err != nil { t.Fatalf("Can't create amqp: %v", err) } @@ -1041,7 +1042,7 @@ func TestSendMultipleMessages(t *testing.T) { func TestSendDisconnectMessages(t *testing.T) { const sendQueueSize = 32 - amqpHandler, err := amqphandler.New() + amqpHandler, err := amqphandler.New(trimLogs) if err != nil { t.Fatalf("Can't create amqp: %v", err) } diff --git a/communicationmanager.go b/communicationmanager.go index b23d6acd..6f2f2d69 100644 --- a/communicationmanager.go +++ b/communicationmanager.go @@ -145,7 +145,7 @@ func newCommunicationManager(cfg *config.Config) (cm *communicationManager, err } } - if cm.amqp, err = amqp.New(); err != nil { + if cm.amqp, err = amqp.New(cfg.TrimLogs); err != nil { return cm, aoserrors.Wrap(err) } diff --git a/config/config.go b/config/config.go index 26a05861..e11a1ecd 100644 --- a/config/config.go +++ b/config/config.go @@ -110,6 +110,7 @@ type Config struct { Migration Migration `json:"migration"` SMController SMController `json:"smController"` UMController UMController `json:"umController"` + TrimLogs bool `json:"logMaxLen,omitempty"` } /*********************************************************************************************************************** @@ -146,6 +147,7 @@ func New(fileName string) (config *Config, err error) { UpdateTTL: aostypes.Duration{Duration: 30 * 24 * time.Hour}, }, UMController: UMController{UpdateTTL: aostypes.Duration{Duration: 30 * 24 * time.Hour}}, + TrimLogs: true, } if err = json.Unmarshal(raw, &config); err != nil {