You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by sr...@apache.org on 2023/06/21 16:54:07 UTC
[plc4x] branch develop updated: feat(plc4go): improved options handling
This is an automated email from the ASF dual-hosted git repository.
sruehl pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/plc4x.git
The following commit(s) were added to refs/heads/develop by this push:
new d2a14cac94 feat(plc4go): improved options handling
d2a14cac94 is described below
commit d2a14cac943ba6fdfeedd9a2f8d7fc1abe04cec0
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Wed Jun 21 18:54:00 2023 +0200
feat(plc4go): improved options handling
---
plc4go/internal/ads/Connection.go | 6 +++--
plc4go/internal/ads/Discoverer.go | 6 +++--
plc4go/internal/ads/DiscoveryMessageCodec.go | 6 +++--
plc4go/internal/ads/Driver.go | 3 ++-
plc4go/internal/ads/MessageCodec.go | 3 ++-
plc4go/internal/ads/model/AdsSubscriptionHandle.go | 3 ++-
plc4go/internal/bacnetip/Connection.go | 3 ++-
plc4go/internal/bacnetip/Driver.go | 3 ++-
plc4go/internal/bacnetip/Reader.go | 3 ++-
plc4go/internal/bacnetip/Subscriber.go | 3 ++-
plc4go/internal/cbus/Browser.go | 3 ++-
plc4go/internal/cbus/Connection.go | 3 ++-
plc4go/internal/cbus/Discoverer.go | 3 ++-
plc4go/internal/cbus/Driver.go | 5 ++--
plc4go/internal/cbus/MessageCodec.go | 6 +++--
plc4go/internal/cbus/Reader.go | 3 ++-
plc4go/internal/cbus/Subscriber.go | 3 ++-
plc4go/internal/cbus/Writer.go | 3 ++-
plc4go/internal/eip/Connection.go | 3 ++-
plc4go/internal/eip/Driver.go | 3 ++-
plc4go/internal/eip/MessageCodec.go | 3 ++-
plc4go/internal/eip/Reader.go | 3 ++-
plc4go/internal/eip/Writer.go | 3 ++-
plc4go/internal/knxnetip/Browser.go | 6 +++--
plc4go/internal/knxnetip/Connection.go | 6 +++--
plc4go/internal/knxnetip/Discoverer.go | 3 ++-
plc4go/internal/knxnetip/Driver.go | 3 ++-
plc4go/internal/knxnetip/MessageCodec.go | 8 +++---
plc4go/internal/knxnetip/Reader.go | 3 ++-
plc4go/internal/knxnetip/Subscriber.go | 6 +++--
plc4go/internal/knxnetip/SubscriptionEvent.go | 6 +++--
plc4go/internal/modbus/AsciiDriver.go | 3 ++-
plc4go/internal/modbus/Connection.go | 3 ++-
plc4go/internal/modbus/MessageCodec.go | 6 +++--
plc4go/internal/modbus/Reader.go | 6 +++--
plc4go/internal/modbus/RtuDriver.go | 3 ++-
plc4go/internal/modbus/Tag.go | 6 ++---
plc4go/internal/modbus/TagHandler.go | 3 ++-
plc4go/internal/modbus/TcpDriver.go | 3 ++-
plc4go/internal/modbus/Writer.go | 3 ++-
plc4go/internal/s7/Connection.go | 3 ++-
plc4go/internal/s7/Driver.go | 3 ++-
plc4go/internal/s7/MessageCodec.go | 6 +++--
plc4go/internal/s7/Reader.go | 6 +++--
plc4go/internal/s7/TagHandler.go | 6 +++--
plc4go/internal/s7/Writer.go | 3 ++-
plc4go/internal/simulated/Connection.go | 6 ++---
plc4go/internal/simulated/Device.go | 6 +++--
plc4go/internal/simulated/Device_test.go | 2 --
plc4go/internal/simulated/Driver.go | 3 ++-
plc4go/internal/simulated/Reader.go | 3 ++-
plc4go/internal/simulated/Writer.go | 3 ++-
plc4go/pkg/api/driverManager.go | 2 +-
plc4go/spi/default/DefaultBrowser.go | 3 ++-
plc4go/spi/default/DefaultCodec.go | 12 ++++++---
plc4go/spi/default/DefaultConnection.go | 3 ++-
.../interceptors/SingleItemRequestInterceptor.go | 3 ++-
plc4go/spi/model/DefaultPlcSubscriptionEvent.go | 3 ++-
plc4go/spi/model/DefaultPlcSubscriptionResponse.go | 4 +--
plc4go/spi/options/Option.go | 29 ++++++++++------------
plc4go/spi/pool/WorkerPool.go | 4 +--
plc4go/spi/tracer/Tracer.go | 3 ++-
.../spi/transactions/RequestTransactionManager.go | 6 +++--
plc4go/spi/transports/pcap/Transport.go | 3 ++-
plc4go/spi/transports/pcap/TransportInstance.go | 3 ++-
plc4go/spi/transports/serial/Transport.go | 3 ++-
plc4go/spi/transports/serial/TransportInstance.go | 3 ++-
plc4go/spi/transports/tcp/Transport.go | 3 ++-
plc4go/spi/transports/tcp/TransportInstance.go | 3 ++-
plc4go/spi/transports/test/Transport.go | 3 ++-
plc4go/spi/transports/test/TransportInstance.go | 3 ++-
plc4go/spi/transports/udp/Transport.go | 3 ++-
plc4go/spi/transports/udp/TransportInstance.go | 3 ++-
.../utils/DefaultBufferedTransportInstance.go | 3 ++-
plc4go/spi/values/PlcValueHandler.go | 3 ++-
75 files changed, 201 insertions(+), 117 deletions(-)
diff --git a/plc4go/internal/ads/Connection.go b/plc4go/internal/ads/Connection.go
index 85af72ce3b..203fee936c 100644
--- a/plc4go/internal/ads/Connection.go
+++ b/plc4go/internal/ads/Connection.go
@@ -65,13 +65,15 @@ func NewConnection(messageCodec spi.MessageCodec, configuration model.Configurat
if err != nil {
return nil, err
}
+ passLoggerToModel, _ := options.ExtractPassLoggerToModel(_options...)
+ customLogger, _ := options.ExtractCustomLogger(_options...)
connection := &Connection{
messageCodec: messageCodec,
configuration: configuration,
driverContext: driverContext,
subscriptions: map[uint32]apiModel.PlcSubscriptionHandle{},
- passLogToModel: options.ExtractPassLoggerToModel(_options...),
- log: options.ExtractCustomLogger(_options...),
+ passLogToModel: passLoggerToModel,
+ log: customLogger,
}
if traceEnabledOption, ok := connectionOptions["traceEnabled"]; ok {
if len(traceEnabledOption) == 1 {
diff --git a/plc4go/internal/ads/Discoverer.go b/plc4go/internal/ads/Discoverer.go
index dc3ea8e12f..406aaf7d0c 100644
--- a/plc4go/internal/ads/Discoverer.go
+++ b/plc4go/internal/ads/Discoverer.go
@@ -53,9 +53,11 @@ type Discoverer struct {
}
func NewDiscoverer(_options ...options.WithOption) *Discoverer {
+ passLoggerToModel, _ := options.ExtractPassLoggerToModel(_options...)
+ customLogger, _ := options.ExtractCustomLogger(_options...)
return &Discoverer{
- passLogToModel: options.ExtractPassLoggerToModel(_options...),
- log: options.ExtractCustomLogger(_options...),
+ passLogToModel: passLoggerToModel,
+ log: customLogger,
}
}
diff --git a/plc4go/internal/ads/DiscoveryMessageCodec.go b/plc4go/internal/ads/DiscoveryMessageCodec.go
index d322070108..7082adb0e5 100644
--- a/plc4go/internal/ads/DiscoveryMessageCodec.go
+++ b/plc4go/internal/ads/DiscoveryMessageCodec.go
@@ -39,9 +39,11 @@ type DiscoveryMessageCodec struct {
}
func NewDiscoveryMessageCodec(transportInstance transports.TransportInstance, _options ...options.WithOption) *DiscoveryMessageCodec {
+ passLoggerToModel, _ := options.ExtractPassLoggerToModel(_options...)
+ customLogger, _ := options.ExtractCustomLogger(_options...)
codec := &DiscoveryMessageCodec{
- passLogToModel: options.ExtractPassLoggerToModel(_options...),
- log: options.ExtractCustomLogger(_options...),
+ passLogToModel: passLoggerToModel,
+ log: customLogger,
}
codec.DefaultCodec = _default.NewDefaultCodec(codec, transportInstance, _options...)
return codec
diff --git a/plc4go/internal/ads/Driver.go b/plc4go/internal/ads/Driver.go
index 2bfbdf1294..fccaeae999 100644
--- a/plc4go/internal/ads/Driver.go
+++ b/plc4go/internal/ads/Driver.go
@@ -42,8 +42,9 @@ type Driver struct {
}
func NewDriver(_options ...options.WithOption) plc4go.PlcDriver {
+ customLogger, _ := options.ExtractCustomLogger(_options...)
driver := &Driver{
- log: options.ExtractCustomLogger(_options...),
+ log: customLogger,
}
driver.DefaultDriver = _default.NewDefaultDriver(driver, "ads", "Beckhoff TwinCat ADS", "tcp", NewTagHandler())
return driver
diff --git a/plc4go/internal/ads/MessageCodec.go b/plc4go/internal/ads/MessageCodec.go
index e711f1d899..4a7cb122c7 100644
--- a/plc4go/internal/ads/MessageCodec.go
+++ b/plc4go/internal/ads/MessageCodec.go
@@ -41,8 +41,9 @@ type MessageCodec struct {
}
func NewMessageCodec(transportInstance transports.TransportInstance, _options ...options.WithOption) *MessageCodec {
+ customLogger, _ := options.ExtractCustomLogger(_options...)
codec := &MessageCodec{
- log: options.ExtractCustomLogger(_options...),
+ log: customLogger,
}
codec.DefaultCodec = _default.NewDefaultCodec(
codec,
diff --git a/plc4go/internal/ads/model/AdsSubscriptionHandle.go b/plc4go/internal/ads/model/AdsSubscriptionHandle.go
index 81bf0254c9..ffcfb0345e 100644
--- a/plc4go/internal/ads/model/AdsSubscriptionHandle.go
+++ b/plc4go/internal/ads/model/AdsSubscriptionHandle.go
@@ -40,12 +40,13 @@ type AdsSubscriptionHandle struct {
}
func NewAdsSubscriptionHandle(subscriber spi.PlcSubscriber, tagName string, directTag DirectPlcTag, _options ...options.WithOption) *AdsSubscriptionHandle {
+ customLogger, _ := options.ExtractCustomLogger(_options...)
return &AdsSubscriptionHandle{
subscriber: subscriber,
tagName: tagName,
directTag: directTag,
consumers: []apiModel.PlcSubscriptionEventConsumer{},
- log: options.ExtractCustomLogger(_options...),
+ log: customLogger,
}
}
diff --git a/plc4go/internal/bacnetip/Connection.go b/plc4go/internal/bacnetip/Connection.go
index 7d74e45101..4b9c313a33 100644
--- a/plc4go/internal/bacnetip/Connection.go
+++ b/plc4go/internal/bacnetip/Connection.go
@@ -54,11 +54,12 @@ type Connection struct {
}
func NewConnection(messageCodec spi.MessageCodec, tagHandler spi.PlcTagHandler, tm transactions.RequestTransactionManager, connectionOptions map[string][]string, _options ...options.WithOption) *Connection {
+ customLogger, _ := options.ExtractCustomLogger(_options...)
connection := &Connection{
invokeIdGenerator: InvokeIdGenerator{currentInvokeId: 0},
messageCodec: messageCodec,
tm: tm,
- log: options.ExtractCustomLogger(_options...),
+ log: customLogger,
}
if traceEnabledOption, ok := connectionOptions["traceEnabled"]; ok {
if len(traceEnabledOption) == 1 {
diff --git a/plc4go/internal/bacnetip/Driver.go b/plc4go/internal/bacnetip/Driver.go
index ecad46a27a..f9c439aadd 100644
--- a/plc4go/internal/bacnetip/Driver.go
+++ b/plc4go/internal/bacnetip/Driver.go
@@ -52,6 +52,7 @@ type Driver struct {
}
func NewDriver(_options ...options.WithOption) plc4go.PlcDriver {
+ customLogger, _ := options.ExtractCustomLogger(_options...)
driver := &Driver{
applicationManager: ApplicationManager{
applications: map[string]*ApplicationLayerMessageCodec{},
@@ -60,7 +61,7 @@ func NewDriver(_options ...options.WithOption) plc4go.PlcDriver {
awaitSetupComplete: true,
awaitDisconnectComplete: true,
- log: options.ExtractCustomLogger(_options...),
+ log: customLogger,
}
driver.DefaultDriver = _default.NewDefaultDriver(driver, "bacnet-ip", "BACnet/IP", "udp", NewTagHandler())
return driver
diff --git a/plc4go/internal/bacnetip/Reader.go b/plc4go/internal/bacnetip/Reader.go
index 1ee5239bc9..dbecc7c036 100644
--- a/plc4go/internal/bacnetip/Reader.go
+++ b/plc4go/internal/bacnetip/Reader.go
@@ -49,6 +49,7 @@ type Reader struct {
}
func NewReader(invokeIdGenerator *InvokeIdGenerator, messageCodec spi.MessageCodec, tm transactions.RequestTransactionManager, _options ...options.WithOption) *Reader {
+ customLogger, _ := options.ExtractCustomLogger(_options...)
return &Reader{
invokeIdGenerator: invokeIdGenerator,
messageCodec: messageCodec,
@@ -57,7 +58,7 @@ func NewReader(invokeIdGenerator *InvokeIdGenerator, messageCodec spi.MessageCod
maxSegmentsAccepted: readWriteModel.MaxSegmentsAccepted_MORE_THAN_64_SEGMENTS,
maxApduLengthAccepted: readWriteModel.MaxApduLengthAccepted_NUM_OCTETS_1476,
- log: options.ExtractCustomLogger(_options...),
+ log: customLogger,
}
}
diff --git a/plc4go/internal/bacnetip/Subscriber.go b/plc4go/internal/bacnetip/Subscriber.go
index e24aa0cfb7..46e65aa48e 100644
--- a/plc4go/internal/bacnetip/Subscriber.go
+++ b/plc4go/internal/bacnetip/Subscriber.go
@@ -37,11 +37,12 @@ type Subscriber struct {
}
func NewSubscriber(connection *Connection, _options ...options.WithOption) *Subscriber {
+ logger, _ := options.ExtractCustomLogger(_options...)
return &Subscriber{
connection: connection,
consumers: make(map[*spiModel.DefaultPlcConsumerRegistration]apiModel.PlcSubscriptionEventConsumer),
- log: options.ExtractCustomLogger(_options...),
+ log: logger,
}
}
diff --git a/plc4go/internal/cbus/Browser.go b/plc4go/internal/cbus/Browser.go
index b9ecadcd13..0230aaff65 100644
--- a/plc4go/internal/cbus/Browser.go
+++ b/plc4go/internal/cbus/Browser.go
@@ -47,11 +47,12 @@ type Browser struct {
}
func NewBrowser(connection plc4go.PlcConnection, _options ...options.WithOption) *Browser {
+ customLogger, _ := options.ExtractCustomLogger(_options...)
browser := &Browser{
connection: connection,
sequenceCounter: 0,
- log: options.ExtractCustomLogger(_options...),
+ log: customLogger,
}
browser.DefaultBrowser = _default.NewDefaultBrowser(browser, _options...)
return browser
diff --git a/plc4go/internal/cbus/Connection.go b/plc4go/internal/cbus/Connection.go
index 813c5b7ee5..2958ebb8f6 100644
--- a/plc4go/internal/cbus/Connection.go
+++ b/plc4go/internal/cbus/Connection.go
@@ -78,6 +78,7 @@ type Connection struct {
}
func NewConnection(messageCodec *MessageCodec, configuration Configuration, driverContext DriverContext, tagHandler spi.PlcTagHandler, tm transactions.RequestTransactionManager, connectionOptions map[string][]string, _options ...options.WithOption) *Connection {
+ customLogger, _ := options.ExtractCustomLogger(_options...)
connection := &Connection{
alphaGenerator: AlphaGenerator{currentAlpha: 'g'},
messageCodec: messageCodec,
@@ -85,7 +86,7 @@ func NewConnection(messageCodec *MessageCodec, configuration Configuration, driv
driverContext: driverContext,
tm: tm,
- log: options.ExtractCustomLogger(_options...),
+ log: customLogger,
}
if traceEnabledOption, ok := connectionOptions["traceEnabled"]; ok {
if len(traceEnabledOption) == 1 {
diff --git a/plc4go/internal/cbus/Discoverer.go b/plc4go/internal/cbus/Discoverer.go
index f65850f413..58fe1346b5 100644
--- a/plc4go/internal/cbus/Discoverer.go
+++ b/plc4go/internal/cbus/Discoverer.go
@@ -51,12 +51,13 @@ type Discoverer struct {
}
func NewDiscoverer(_options ...options.WithOption) *Discoverer {
+ customLogger, _ := options.ExtractCustomLogger(_options...)
return &Discoverer{
// TODO: maybe a dynamic executor would be better to not waste cycles when not in use
transportInstanceCreationQueue: pool.NewFixedSizeExecutor(50, 100, _options...),
deviceScanningQueue: pool.NewFixedSizeExecutor(50, 100, _options...),
- log: options.ExtractCustomLogger(_options...),
+ log: customLogger,
}
}
diff --git a/plc4go/internal/cbus/Driver.go b/plc4go/internal/cbus/Driver.go
index 5119ff0516..0d95ba6822 100644
--- a/plc4go/internal/cbus/Driver.go
+++ b/plc4go/internal/cbus/Driver.go
@@ -45,11 +45,12 @@ type Driver struct {
}
func NewDriver(_options ...options.WithOption) plc4go.PlcDriver {
+ customLogger, _ := options.ExtractCustomLogger(_options...)
driver := &Driver{
tm: transactions.NewRequestTransactionManager(1, _options...),
awaitSetupComplete: true,
awaitDisconnectComplete: true,
- log: options.ExtractCustomLogger(_options...),
+ log: customLogger,
}
driver.DefaultDriver = _default.NewDefaultDriver(driver, "c-bus", "Clipsal Bus", "tcp", NewTagHandler())
return driver
@@ -77,7 +78,7 @@ func (m *Driver) GetConnectionWithContext(ctx context.Context, transportUrl url.
m.log.Error().Err(err).Msgf("Invalid options")
return m.reportError(errors.Wrap(err, "Invalid options"))
}
-
+ // TODO: we might need to remember the original options
codec := NewMessageCodec(transportInstance, options.WithCustomLogger(m.log))
m.log.Debug().Msgf("working with codec:\n%s", codec)
diff --git a/plc4go/internal/cbus/MessageCodec.go b/plc4go/internal/cbus/MessageCodec.go
index 7151da9dba..070e3b7355 100644
--- a/plc4go/internal/cbus/MessageCodec.go
+++ b/plc4go/internal/cbus/MessageCodec.go
@@ -57,11 +57,13 @@ type MessageCodec struct {
}
func NewMessageCodec(transportInstance transports.TransportInstance, _options ...options.WithOption) *MessageCodec {
+ passLoggerToModel, _ := options.ExtractPassLoggerToModel(_options...)
+ customLogger, _ := options.ExtractCustomLogger(_options...)
codec := &MessageCodec{
requestContext: readWriteModel.NewRequestContext(false),
cbusOptions: readWriteModel.NewCBusOptions(false, false, false, false, false, false, false, false, false),
- passLogToModel: options.ExtractPassLoggerToModel(_options...),
- log: options.ExtractCustomLogger(_options...),
+ passLogToModel: passLoggerToModel,
+ log: customLogger,
}
codec.DefaultCodec = _default.NewDefaultCodec(codec, transportInstance, append(_options, _default.WithCustomMessageHandler(extractMMIAndSAL(codec.log)))...)
return codec
diff --git a/plc4go/internal/cbus/Reader.go b/plc4go/internal/cbus/Reader.go
index 59fa3460e6..d566a5cd24 100644
--- a/plc4go/internal/cbus/Reader.go
+++ b/plc4go/internal/cbus/Reader.go
@@ -46,12 +46,13 @@ type Reader struct {
}
func NewReader(tpduGenerator *AlphaGenerator, messageCodec *MessageCodec, tm transactions.RequestTransactionManager, _options ...options.WithOption) *Reader {
+ customLogger, _ := options.ExtractCustomLogger(_options...)
return &Reader{
alphaGenerator: tpduGenerator,
messageCodec: messageCodec,
tm: tm,
- log: options.ExtractCustomLogger(_options...),
+ log: customLogger,
}
}
diff --git a/plc4go/internal/cbus/Subscriber.go b/plc4go/internal/cbus/Subscriber.go
index b88d5da690..ee4a1a04c6 100644
--- a/plc4go/internal/cbus/Subscriber.go
+++ b/plc4go/internal/cbus/Subscriber.go
@@ -48,11 +48,12 @@ type Subscriber struct {
}
func NewSubscriber(addSubscriber func(subscriber *Subscriber), _options ...options.WithOption) *Subscriber {
+ customLogger, _ := options.ExtractCustomLogger(_options...)
return &Subscriber{
addSubscriber: addSubscriber,
consumers: make(map[*spiModel.DefaultPlcConsumerRegistration]apiModel.PlcSubscriptionEventConsumer),
- log: options.ExtractCustomLogger(_options...),
+ log: customLogger,
}
}
diff --git a/plc4go/internal/cbus/Writer.go b/plc4go/internal/cbus/Writer.go
index 43fc194634..97ffffc469 100644
--- a/plc4go/internal/cbus/Writer.go
+++ b/plc4go/internal/cbus/Writer.go
@@ -44,12 +44,13 @@ type Writer struct {
}
func NewWriter(tpduGenerator *AlphaGenerator, messageCodec *MessageCodec, tm transactions.RequestTransactionManager, _options ...options.WithOption) *Writer {
+ customLogger, _ := options.ExtractCustomLogger(_options...)
return &Writer{
alphaGenerator: tpduGenerator,
messageCodec: messageCodec,
tm: tm,
- log: options.ExtractCustomLogger(_options...),
+ log: customLogger,
}
}
diff --git a/plc4go/internal/eip/Connection.go b/plc4go/internal/eip/Connection.go
index d6a1c18585..cb2055184a 100644
--- a/plc4go/internal/eip/Connection.go
+++ b/plc4go/internal/eip/Connection.go
@@ -74,12 +74,13 @@ func NewConnection(
connectionOptions map[string][]string,
_options ...options.WithOption,
) *Connection {
+ customLogger, _ := options.ExtractCustomLogger(_options...)
connection := &Connection{
messageCodec: messageCodec,
configuration: configuration,
driverContext: driverContext,
tm: tm,
- log: options.ExtractCustomLogger(_options...),
+ log: customLogger,
}
if traceEnabledOption, ok := connectionOptions["traceEnabled"]; ok {
if len(traceEnabledOption) == 1 {
diff --git a/plc4go/internal/eip/Driver.go b/plc4go/internal/eip/Driver.go
index ed757a36c8..508a0c93a8 100644
--- a/plc4go/internal/eip/Driver.go
+++ b/plc4go/internal/eip/Driver.go
@@ -42,12 +42,13 @@ type Driver struct {
}
func NewDriver(_options ...options.WithOption) plc4go.PlcDriver {
+ customLogger, _ := options.ExtractCustomLogger(_options...)
driver := &Driver{
tm: transactions.NewRequestTransactionManager(1),
awaitSetupComplete: true,
awaitDisconnectComplete: true,
- log: options.ExtractCustomLogger(_options...),
+ log: customLogger,
}
driver.DefaultDriver = _default.NewDefaultDriver(driver, "eip", "EthernetIP", "tcp", NewTagHandler())
return driver
diff --git a/plc4go/internal/eip/MessageCodec.go b/plc4go/internal/eip/MessageCodec.go
index 2844bb7f14..2eff6ca89b 100644
--- a/plc4go/internal/eip/MessageCodec.go
+++ b/plc4go/internal/eip/MessageCodec.go
@@ -39,8 +39,9 @@ type MessageCodec struct {
}
func NewMessageCodec(transportInstance transports.TransportInstance, _options ...options.WithOption) *MessageCodec {
+ customLogger, _ := options.ExtractCustomLogger(_options...)
codec := &MessageCodec{
- log: options.ExtractCustomLogger(_options...),
+ log: customLogger,
}
codec.DefaultCodec = _default.NewDefaultCodec(codec, transportInstance, _options...)
return codec
diff --git a/plc4go/internal/eip/Reader.go b/plc4go/internal/eip/Reader.go
index 1c2ed4eee6..cfb7811c07 100644
--- a/plc4go/internal/eip/Reader.go
+++ b/plc4go/internal/eip/Reader.go
@@ -52,13 +52,14 @@ type Reader struct {
}
func NewReader(messageCodec spi.MessageCodec, tm transactions.RequestTransactionManager, configuration Configuration, sessionHandle *uint32, _options ...options.WithOption) *Reader {
+ customLogger, _ := options.ExtractCustomLogger(_options...)
return &Reader{
messageCodec: messageCodec,
tm: tm,
configuration: configuration,
sessionHandle: sessionHandle,
- log: options.ExtractCustomLogger(_options...),
+ log: customLogger,
}
}
diff --git a/plc4go/internal/eip/Writer.go b/plc4go/internal/eip/Writer.go
index 7b198264d6..c899da7c86 100644
--- a/plc4go/internal/eip/Writer.go
+++ b/plc4go/internal/eip/Writer.go
@@ -49,13 +49,14 @@ type Writer struct {
}
func NewWriter(messageCodec spi.MessageCodec, tm transactions.RequestTransactionManager, configuration Configuration, sessionHandle *uint32, senderContext *[]uint8, _options ...options.WithOption) Writer {
+ customLogger, _ := options.ExtractCustomLogger(_options...)
return Writer{
messageCodec: messageCodec,
tm: tm,
configuration: configuration,
sessionHandle: sessionHandle,
senderContext: senderContext,
- log: options.ExtractCustomLogger(_options...),
+ log: customLogger,
}
}
diff --git a/plc4go/internal/knxnetip/Browser.go b/plc4go/internal/knxnetip/Browser.go
index 80b6729e3d..e9ec18d2c2 100644
--- a/plc4go/internal/knxnetip/Browser.go
+++ b/plc4go/internal/knxnetip/Browser.go
@@ -51,12 +51,14 @@ type Browser struct {
}
func NewBrowser(connection *Connection, messageCodec spi.MessageCodec, _options ...options.WithOption) *Browser {
+ passLoggerToModel, _ := options.ExtractPassLoggerToModel(_options...)
+ extractCustomLogger, _ := options.ExtractCustomLogger(_options...)
browser := Browser{
connection: connection,
messageCodec: messageCodec,
sequenceCounter: 0,
- passLogToModel: options.ExtractPassLoggerToModel(_options...),
- log: options.ExtractCustomLogger(_options...),
+ passLogToModel: passLoggerToModel,
+ log: extractCustomLogger,
}
browser.DefaultBrowser = _default.NewDefaultBrowser(browser, _options...)
return &browser
diff --git a/plc4go/internal/knxnetip/Connection.go b/plc4go/internal/knxnetip/Connection.go
index b86e72a96b..ddef8aacfc 100644
--- a/plc4go/internal/knxnetip/Connection.go
+++ b/plc4go/internal/knxnetip/Connection.go
@@ -172,6 +172,8 @@ type InternalResult struct {
}
func NewConnection(transportInstance transports.TransportInstance, connectionOptions map[string][]string, tagHandler spi.PlcTagHandler, _options ...options.WithOption) *Connection {
+ passLoggerToModel, _ := options.ExtractPassLoggerToModel(_options...)
+ customLogger, _ := options.ExtractCustomLogger(_options...)
connection := &Connection{
options: connectionOptions,
tagHandler: tagHandler,
@@ -190,8 +192,8 @@ func NewConnection(transportInstance transports.TransportInstance, connectionOpt
defaultTtl: 10 * time.Second,
DeviceConnections: map[driverModel.KnxAddress]*KnxDeviceConnection{},
handleTunnelingRequests: true,
- passLogToModel: options.ExtractPassLoggerToModel(_options...),
- log: options.ExtractCustomLogger(_options...),
+ passLogToModel: passLoggerToModel,
+ log: customLogger,
}
connection.connectionTtl = connection.defaultTtl * 2
diff --git a/plc4go/internal/knxnetip/Discoverer.go b/plc4go/internal/knxnetip/Discoverer.go
index 08ebf4de80..e63c83939a 100644
--- a/plc4go/internal/knxnetip/Discoverer.go
+++ b/plc4go/internal/knxnetip/Discoverer.go
@@ -50,11 +50,12 @@ type Discoverer struct {
}
func NewDiscoverer(_options ...options.WithOption) *Discoverer {
+ customLogger, _ := options.ExtractCustomLogger(_options...)
return &Discoverer{
// TODO: maybe a dynamic executor would be better to not waste cycles when not in use
transportInstanceCreationQueue: pool.NewFixedSizeExecutor(50, 100, _options...),
deviceScanningQueue: pool.NewFixedSizeExecutor(50, 100, _options...),
- log: options.ExtractCustomLogger(_options...),
+ log: customLogger,
}
}
diff --git a/plc4go/internal/knxnetip/Driver.go b/plc4go/internal/knxnetip/Driver.go
index 2d230e4b2e..5fa947bf0f 100644
--- a/plc4go/internal/knxnetip/Driver.go
+++ b/plc4go/internal/knxnetip/Driver.go
@@ -39,8 +39,9 @@ type Driver struct {
}
func NewDriver(_options ...options.WithOption) *Driver {
+ customLogger, _ := options.ExtractCustomLogger(_options...)
driver := &Driver{
- log: options.ExtractCustomLogger(_options...),
+ log: customLogger,
}
driver.DefaultDriver = _default.NewDefaultDriver(driver, "knxnet-ip", "KNXNet/IP", "udp", NewTagHandler())
return driver
diff --git a/plc4go/internal/knxnetip/MessageCodec.go b/plc4go/internal/knxnetip/MessageCodec.go
index 94906da454..29a7500f37 100644
--- a/plc4go/internal/knxnetip/MessageCodec.go
+++ b/plc4go/internal/knxnetip/MessageCodec.go
@@ -42,15 +42,17 @@ type MessageCodec struct {
}
func NewMessageCodec(transportInstance transports.TransportInstance, messageInterceptor func(message spi.Message), _options ...options.WithOption) *MessageCodec {
+ passLoggerToModel, _ := options.ExtractPassLoggerToModel(_options...)
+ customLogger, _ := options.ExtractCustomLogger(_options...)
codec := &MessageCodec{
messageInterceptor: messageInterceptor,
- passLogToModel: options.ExtractPassLoggerToModel(_options...),
- log: options.ExtractCustomLogger(_options...),
+ passLogToModel: passLoggerToModel,
+ log: customLogger,
}
codec.DefaultCodec = _default.NewDefaultCodec(
codec,
transportInstance,
- append(_options, _default.WithCustomMessageHandler(CustomMessageHandling(options.ExtractCustomLogger(_options...))))...,
+ append(_options, _default.WithCustomMessageHandler(CustomMessageHandling(customLogger)))...,
)
return codec
}
diff --git a/plc4go/internal/knxnetip/Reader.go b/plc4go/internal/knxnetip/Reader.go
index 452edbe380..df44ad2f5e 100644
--- a/plc4go/internal/knxnetip/Reader.go
+++ b/plc4go/internal/knxnetip/Reader.go
@@ -45,9 +45,10 @@ type Reader struct {
}
func NewReader(connection *Connection, _options ...options.WithOption) *Reader {
+ customLogger, _ := options.ExtractCustomLogger(_options...)
return &Reader{
connection: connection,
- log: options.ExtractCustomLogger(_options...),
+ log: customLogger,
}
}
diff --git a/plc4go/internal/knxnetip/Subscriber.go b/plc4go/internal/knxnetip/Subscriber.go
index c6c9dec419..bb86bb6deb 100644
--- a/plc4go/internal/knxnetip/Subscriber.go
+++ b/plc4go/internal/knxnetip/Subscriber.go
@@ -44,11 +44,13 @@ type Subscriber struct {
}
func NewSubscriber(connection *Connection, _options ...options.WithOption) *Subscriber {
+ passLoggerToModel, _ := options.ExtractPassLoggerToModel(_options...)
+ customLogger, _ := options.ExtractCustomLogger(_options...)
return &Subscriber{
connection: connection,
consumers: make(map[*spiModel.DefaultPlcConsumerRegistration]apiModel.PlcSubscriptionEventConsumer),
- passLogToModel: options.ExtractPassLoggerToModel(_options...),
- log: options.ExtractCustomLogger(_options...),
+ passLogToModel: passLoggerToModel,
+ log: customLogger,
}
}
diff --git a/plc4go/internal/knxnetip/SubscriptionEvent.go b/plc4go/internal/knxnetip/SubscriptionEvent.go
index 07ea1f88c5..c425fda7ad 100644
--- a/plc4go/internal/knxnetip/SubscriptionEvent.go
+++ b/plc4go/internal/knxnetip/SubscriptionEvent.go
@@ -49,10 +49,12 @@ func NewSubscriptionEvent(
values map[string]values.PlcValue,
_options ...options.WithOption,
) SubscriptionEvent {
+ passLoggerToModel, _ := options.ExtractPassLoggerToModel(_options...)
+ customLogger, _ := options.ExtractCustomLogger(_options...)
subscriptionEvent := SubscriptionEvent{
addresses: addresses,
- passLogToModel: options.ExtractPassLoggerToModel(_options...),
- log: options.ExtractCustomLogger(_options...),
+ passLogToModel: passLoggerToModel,
+ log: customLogger,
}
event := spiModel.NewDefaultPlcSubscriptionEvent(&subscriptionEvent, tags, types, intervals, responseCodes, values, _options...)
subscriptionEvent.DefaultPlcSubscriptionEvent = event.(*spiModel.DefaultPlcSubscriptionEvent)
diff --git a/plc4go/internal/modbus/AsciiDriver.go b/plc4go/internal/modbus/AsciiDriver.go
index e5c22d0f63..00c635143b 100644
--- a/plc4go/internal/modbus/AsciiDriver.go
+++ b/plc4go/internal/modbus/AsciiDriver.go
@@ -41,8 +41,9 @@ type AsciiDriver struct {
}
func NewModbusAsciiDriver(_options ...options.WithOption) *AsciiDriver {
+ customLogger, _ := options.ExtractCustomLogger(_options...)
driver := &AsciiDriver{
- log: options.ExtractCustomLogger(_options...),
+ log: customLogger,
}
driver.DefaultDriver = _default.NewDefaultDriver(driver, "modbus-ascii", "Modbus ASCII", "serial", NewTagHandler())
return driver
diff --git a/plc4go/internal/modbus/Connection.go b/plc4go/internal/modbus/Connection.go
index 8ad66ff8b4..0283bd0b1e 100644
--- a/plc4go/internal/modbus/Connection.go
+++ b/plc4go/internal/modbus/Connection.go
@@ -53,6 +53,7 @@ type Connection struct {
}
func NewConnection(unitIdentifier uint8, messageCodec spi.MessageCodec, connectionOptions map[string][]string, tagHandler spi.PlcTagHandler, _options ...options.WithOption) *Connection {
+ customLogger, _ := options.ExtractCustomLogger(_options...)
connection := &Connection{
unitIdentifier: unitIdentifier,
messageCodec: messageCodec,
@@ -64,7 +65,7 @@ func NewConnection(unitIdentifier uint8, messageCodec spi.MessageCodec, connecti
spiModel.NewDefaultPlcWriteResponse,
_options...,
),
- log: options.ExtractCustomLogger(_options...),
+ log: customLogger,
}
if traceEnabledOption, ok := connectionOptions["traceEnabled"]; ok {
if len(traceEnabledOption) == 1 {
diff --git a/plc4go/internal/modbus/MessageCodec.go b/plc4go/internal/modbus/MessageCodec.go
index 990f8038ad..d5829e6949 100644
--- a/plc4go/internal/modbus/MessageCodec.go
+++ b/plc4go/internal/modbus/MessageCodec.go
@@ -41,10 +41,12 @@ type MessageCodec struct {
}
func NewMessageCodec(transportInstance transports.TransportInstance, _options ...options.WithOption) *MessageCodec {
+ passLoggerToModel, _ := options.ExtractPassLoggerToModel(_options...)
+ customLogger, _ := options.ExtractCustomLogger(_options...)
codec := &MessageCodec{
expectationCounter: 1,
- passLogToModel: options.ExtractPassLoggerToModel(_options...),
- log: options.ExtractCustomLogger(_options...),
+ passLogToModel: passLoggerToModel,
+ log: customLogger,
}
codec.DefaultCodec = _default.NewDefaultCodec(codec, transportInstance)
return codec
diff --git a/plc4go/internal/modbus/Reader.go b/plc4go/internal/modbus/Reader.go
index d0289e8647..6442bbac40 100644
--- a/plc4go/internal/modbus/Reader.go
+++ b/plc4go/internal/modbus/Reader.go
@@ -47,12 +47,14 @@ type Reader struct {
}
func NewReader(unitIdentifier uint8, messageCodec spi.MessageCodec, _options ...options.WithOption) *Reader {
+ passLoggerToModel, _ := options.ExtractPassLoggerToModel(_options...)
+ customLogger, _ := options.ExtractCustomLogger(_options...)
return &Reader{
transactionIdentifier: 0,
unitIdentifier: unitIdentifier,
messageCodec: messageCodec,
- passLogToModel: options.ExtractPassLoggerToModel(_options...),
- log: options.ExtractCustomLogger(_options...),
+ passLogToModel: passLoggerToModel,
+ log: customLogger,
}
}
diff --git a/plc4go/internal/modbus/RtuDriver.go b/plc4go/internal/modbus/RtuDriver.go
index fb91955eb4..12d2aa1803 100644
--- a/plc4go/internal/modbus/RtuDriver.go
+++ b/plc4go/internal/modbus/RtuDriver.go
@@ -41,8 +41,9 @@ type RtuDriver struct {
}
func NewModbusRtuDriver(_options ...options.WithOption) *RtuDriver {
+ customLogger, _ := options.ExtractCustomLogger(_options...)
driver := &RtuDriver{
- log: options.ExtractCustomLogger(_options...),
+ log: customLogger,
}
driver.DefaultDriver = _default.NewDefaultDriver(driver, "modbus-rtu", "Modbus RTU", "serial", NewTagHandler())
return driver
diff --git a/plc4go/internal/modbus/Tag.go b/plc4go/internal/modbus/Tag.go
index d8ca982038..a8c8efbf0c 100644
--- a/plc4go/internal/modbus/Tag.go
+++ b/plc4go/internal/modbus/Tag.go
@@ -62,14 +62,14 @@ func NewModbusPlcTagFromStrings(tagType TagType, addressString string, quantityS
if err != nil {
return nil, errors.Errorf("Couldn't parse address string '%s' into an int", addressString)
}
- localLogger := options.ExtractCustomLogger(_options...)
+ customLogger, _ := options.ExtractCustomLogger(_options...)
if quantityString == "" {
- localLogger.Debug().Msg("No quantity supplied, assuming 1")
+ customLogger.Debug().Msg("No quantity supplied, assuming 1")
quantityString = "1"
}
quantity, err := strconv.ParseUint(quantityString, 10, 16)
if err != nil {
- localLogger.Warn().Err(err).Msgf("Error during parsing for %s. Falling back to 1", quantityString)
+ customLogger.Warn().Err(err).Msgf("Error during parsing for %s. Falling back to 1", quantityString)
quantity = 1
}
return NewTag(tagType, uint16(address), uint16(quantity), datatype), nil
diff --git a/plc4go/internal/modbus/TagHandler.go b/plc4go/internal/modbus/TagHandler.go
index 11779032f9..3efb059178 100644
--- a/plc4go/internal/modbus/TagHandler.go
+++ b/plc4go/internal/modbus/TagHandler.go
@@ -66,6 +66,7 @@ type TagHandler struct {
func NewTagHandler(_options ...options.WithOption) TagHandler {
generalAddressPattern := `(?P<address>\d+)(:(?P<datatype>[a-zA-Z_]+))?(\[(?P<quantity>\d+)])?$`
generalFixedDigitAddressPattern := `(?P<address>\d{4,5})?(:(?P<datatype>[a-zA-Z_]+))?(\[(?P<quantity>\d+)])?$`
+ customLogger, _ := options.ExtractCustomLogger(_options...)
return TagHandler{
plc4xCoilPattern: regexp.MustCompile("^coil:" + generalAddressPattern),
numericCoilPattern: regexp.MustCompile("^0[xX]?" + generalFixedDigitAddressPattern),
@@ -77,7 +78,7 @@ func NewTagHandler(_options ...options.WithOption) TagHandler {
numericHoldingRegisterPattern: regexp.MustCompile("^4[xX]?" + generalFixedDigitAddressPattern),
plc4xExtendedRegisterPattern: regexp.MustCompile("^extended-register:" + generalAddressPattern),
numericExtendedRegisterPattern: regexp.MustCompile("^6[xX]?" + generalFixedDigitAddressPattern),
- log: options.ExtractCustomLogger(_options...),
+ log: customLogger,
}
}
diff --git a/plc4go/internal/modbus/TcpDriver.go b/plc4go/internal/modbus/TcpDriver.go
index 067b8f62ad..87f0a4332f 100644
--- a/plc4go/internal/modbus/TcpDriver.go
+++ b/plc4go/internal/modbus/TcpDriver.go
@@ -41,8 +41,9 @@ type TcpDriver struct {
}
func NewModbusTcpDriver(_options ...options.WithOption) *TcpDriver {
+ customLogger, _ := options.ExtractCustomLogger(_options...)
driver := &TcpDriver{
- log: options.ExtractCustomLogger(_options...),
+ log: customLogger,
}
driver.DefaultDriver = _default.NewDefaultDriver(driver, "modbus-tcp", "Modbus TCP", "tcp", NewTagHandler())
return driver
diff --git a/plc4go/internal/modbus/Writer.go b/plc4go/internal/modbus/Writer.go
index 54da7a4fb3..2d1cf1998a 100644
--- a/plc4go/internal/modbus/Writer.go
+++ b/plc4go/internal/modbus/Writer.go
@@ -44,11 +44,12 @@ type Writer struct {
}
func NewWriter(unitIdentifier uint8, messageCodec spi.MessageCodec, _options ...options.WithOption) Writer {
+ customLogger, _ := options.ExtractCustomLogger(_options...)
return Writer{
transactionIdentifier: 0,
unitIdentifier: unitIdentifier,
messageCodec: messageCodec,
- log: options.ExtractCustomLogger(_options...),
+ log: customLogger,
}
}
diff --git a/plc4go/internal/s7/Connection.go b/plc4go/internal/s7/Connection.go
index fc23f476c0..3ba4a0b2f9 100644
--- a/plc4go/internal/s7/Connection.go
+++ b/plc4go/internal/s7/Connection.go
@@ -73,13 +73,14 @@ type Connection struct {
}
func NewConnection(messageCodec spi.MessageCodec, configuration Configuration, driverContext DriverContext, tagHandler spi.PlcTagHandler, tm transactions.RequestTransactionManager, connectionOptions map[string][]string, _options ...options.WithOption) *Connection {
+ customLogger, _ := options.ExtractCustomLogger(_options...)
connection := &Connection{
tpduGenerator: TpduGenerator{currentTpduId: 10},
messageCodec: messageCodec,
configuration: configuration,
driverContext: driverContext,
tm: tm,
- log: options.ExtractCustomLogger(_options...),
+ log: customLogger,
}
if traceEnabledOption, ok := connectionOptions["traceEnabled"]; ok {
if len(traceEnabledOption) == 1 {
diff --git a/plc4go/internal/s7/Driver.go b/plc4go/internal/s7/Driver.go
index 52eedcc11c..59d0d0fd5c 100644
--- a/plc4go/internal/s7/Driver.go
+++ b/plc4go/internal/s7/Driver.go
@@ -42,12 +42,13 @@ type Driver struct {
}
func NewDriver(_options ...options.WithOption) plc4go.PlcDriver {
+ customLogger, _ := options.ExtractCustomLogger(_options...)
driver := &Driver{
tm: transactions.NewRequestTransactionManager(1),
awaitSetupComplete: true,
awaitDisconnectComplete: true,
- log: options.ExtractCustomLogger(_options...),
+ log: customLogger,
}
driver.DefaultDriver = _default.NewDefaultDriver(driver, "s7", "Siemens S7 (Basic)", "tcp", NewTagHandler(_options...))
return driver
diff --git a/plc4go/internal/s7/MessageCodec.go b/plc4go/internal/s7/MessageCodec.go
index 725e48c3cc..cc667ed734 100644
--- a/plc4go/internal/s7/MessageCodec.go
+++ b/plc4go/internal/s7/MessageCodec.go
@@ -40,9 +40,11 @@ type MessageCodec struct {
}
func NewMessageCodec(transportInstance transports.TransportInstance, _options ...options.WithOption) *MessageCodec {
+ passLoggerToModel, _ := options.ExtractPassLoggerToModel(_options...)
+ extractCustomLogger, _ := options.ExtractCustomLogger(_options...)
codec := &MessageCodec{
- passLogToModel: options.ExtractPassLoggerToModel(_options...),
- log: options.ExtractCustomLogger(_options...),
+ passLogToModel: passLoggerToModel,
+ log: extractCustomLogger,
}
codec.DefaultCodec = _default.NewDefaultCodec(codec, transportInstance, _options...)
return codec
diff --git a/plc4go/internal/s7/Reader.go b/plc4go/internal/s7/Reader.go
index 85581cc6fc..f173e7b271 100644
--- a/plc4go/internal/s7/Reader.go
+++ b/plc4go/internal/s7/Reader.go
@@ -47,12 +47,14 @@ type Reader struct {
}
func NewReader(tpduGenerator *TpduGenerator, messageCodec spi.MessageCodec, tm transactions.RequestTransactionManager, _options ...options.WithOption) *Reader {
+ passLoggerToModel, _ := options.ExtractPassLoggerToModel(_options...)
+ customLogger, _ := options.ExtractCustomLogger(_options...)
return &Reader{
tpduGenerator: tpduGenerator,
messageCodec: messageCodec,
tm: tm,
- passLogToModel: options.ExtractPassLoggerToModel(_options...),
- log: options.ExtractCustomLogger(_options...),
+ passLogToModel: passLoggerToModel,
+ log: customLogger,
}
}
diff --git a/plc4go/internal/s7/TagHandler.go b/plc4go/internal/s7/TagHandler.go
index fa5afa8253..b854557ff3 100644
--- a/plc4go/internal/s7/TagHandler.go
+++ b/plc4go/internal/s7/TagHandler.go
@@ -62,6 +62,8 @@ type TagHandler struct {
}
func NewTagHandler(_options ...options.WithOption) TagHandler {
+ passLoggerToModel, _ := options.ExtractPassLoggerToModel(_options...)
+ customLogger, _ := options.ExtractCustomLogger(_options...)
return TagHandler{
addressPattern: regexp.MustCompile(`^%(?P<memoryArea>.)(?P<transferSizeCode>[XBWD]?)(?P<byteOffset>\d{1,7})(.(?P<bitOffset>[0-7]))?:(?P<dataType>[a-zA-Z_]+)(\[(?P<numElements>\d+)])?`),
//blockNumber usually has its max hat around 64000 --> 5digits
@@ -71,8 +73,8 @@ func NewTagHandler(_options ...options.WithOption) TagHandler {
dataBlockStringShortPattern: regexp.MustCompile(`^%DB(?P<blockNumber>\d{1,5}):(?P<byteOffset>\d{1,7})(.(?P<bitOffset>[0-7]))?:(?P<dataType>STRING|WSTRING)\((?P<stringLength>\d{1,3})\)(\[(?P<numElements>\d+)])?`),
plcProxyAddressPattern: regexp.MustCompile(`[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}`),
- passLogToModel: options.ExtractPassLoggerToModel(_options...),
- log: options.ExtractCustomLogger(_options...),
+ passLogToModel: passLoggerToModel,
+ log: customLogger,
}
}
diff --git a/plc4go/internal/s7/Writer.go b/plc4go/internal/s7/Writer.go
index 850387f941..3f33e6a494 100644
--- a/plc4go/internal/s7/Writer.go
+++ b/plc4go/internal/s7/Writer.go
@@ -45,11 +45,12 @@ type Writer struct {
}
func NewWriter(tpduGenerator *TpduGenerator, messageCodec spi.MessageCodec, tm transactions.RequestTransactionManager, _options ...options.WithOption) Writer {
+ customLogger, _ := options.ExtractCustomLogger(_options...)
return Writer{
tpduGenerator: tpduGenerator,
messageCodec: messageCodec,
tm: tm,
- log: options.ExtractCustomLogger(_options...),
+ log: customLogger,
}
}
diff --git a/plc4go/internal/simulated/Connection.go b/plc4go/internal/simulated/Connection.go
index cb16105add..a31cc7b055 100644
--- a/plc4go/internal/simulated/Connection.go
+++ b/plc4go/internal/simulated/Connection.go
@@ -51,16 +51,16 @@ type Connection struct {
}
func NewConnection(device *Device, tagHandler spi.PlcTagHandler, valueHandler spi.PlcValueHandler, connectionOptions map[string][]string, _options ...options.WithOption) *Connection {
- localLogger := options.ExtractCustomLogger(_options...)
+ customLogger, _ := options.ExtractCustomLogger(_options...)
connection := &Connection{
device: device,
tagHandler: tagHandler,
valueHandler: valueHandler,
options: connectionOptions,
connected: false,
- connectionId: utils.GenerateId(localLogger, 4),
+ connectionId: utils.GenerateId(customLogger, 4),
- log: localLogger,
+ log: customLogger,
}
if traceEnabledOption, ok := connectionOptions["traceEnabled"]; ok {
if len(traceEnabledOption) == 1 {
diff --git a/plc4go/internal/simulated/Device.go b/plc4go/internal/simulated/Device.go
index 3b8e40b904..7a6fc7b057 100644
--- a/plc4go/internal/simulated/Device.go
+++ b/plc4go/internal/simulated/Device.go
@@ -38,11 +38,13 @@ type Device struct {
}
func NewDevice(name string, _options ...options.WithOption) *Device {
+ passLoggerToModel, _ := options.ExtractPassLoggerToModel(_options...)
+ customLogger, _ := options.ExtractCustomLogger(_options...)
return &Device{
Name: name,
State: make(map[simulatedTag]*apiValues.PlcValue),
- passLogToModel: options.ExtractPassLoggerToModel(_options...),
- log: options.ExtractCustomLogger(_options...),
+ passLogToModel: passLoggerToModel,
+ log: customLogger,
}
}
diff --git a/plc4go/internal/simulated/Device_test.go b/plc4go/internal/simulated/Device_test.go
index 04eb113340..17a0c80e34 100644
--- a/plc4go/internal/simulated/Device_test.go
+++ b/plc4go/internal/simulated/Device_test.go
@@ -20,7 +20,6 @@
package simulated
import (
- "github.com/apache/plc4x/plc4go/spi/options"
"github.com/stretchr/testify/assert"
"testing"
@@ -280,7 +279,6 @@ func TestNewDevice(t *testing.T) {
want: &Device{
Name: "",
State: make(map[simulatedTag]*apiValues.PlcValue),
- log: options.ExtractCustomLogger(),
},
},
}
diff --git a/plc4go/internal/simulated/Driver.go b/plc4go/internal/simulated/Driver.go
index 69b66c87fc..cf87fea465 100644
--- a/plc4go/internal/simulated/Driver.go
+++ b/plc4go/internal/simulated/Driver.go
@@ -38,10 +38,11 @@ type Driver struct {
}
func NewDriver(_options ...options.WithOption) plc4go.PlcDriver {
+ customLogger, _ := options.ExtractCustomLogger(_options...)
driver := &Driver{
valueHandler: NewValueHandler(),
- log: options.ExtractCustomLogger(_options...),
+ log: customLogger,
}
driver.DefaultDriver = _default.NewDefaultDriver(driver, "simulated", "Simulated PLC4X Datasource", "none", NewTagHandler())
return driver
diff --git a/plc4go/internal/simulated/Reader.go b/plc4go/internal/simulated/Reader.go
index 4de5d3b6be..8a47066b84 100644
--- a/plc4go/internal/simulated/Reader.go
+++ b/plc4go/internal/simulated/Reader.go
@@ -43,12 +43,13 @@ type Reader struct {
}
func NewReader(device *Device, readerOptions map[string][]string, tracer tracer.Tracer, _options ...options.WithOption) *Reader {
+ customLogger, _ := options.ExtractCustomLogger(_options...)
return &Reader{
device: device,
options: readerOptions,
tracer: tracer,
- log: options.ExtractCustomLogger(_options...),
+ log: customLogger,
}
}
diff --git a/plc4go/internal/simulated/Writer.go b/plc4go/internal/simulated/Writer.go
index 69c6f38a04..b2603c0d2c 100644
--- a/plc4go/internal/simulated/Writer.go
+++ b/plc4go/internal/simulated/Writer.go
@@ -42,12 +42,13 @@ type Writer struct {
}
func NewWriter(device *Device, writerOptions map[string][]string, tracer tracer.Tracer, _options ...options.WithOption) *Writer {
+ customLogger, _ := options.ExtractCustomLogger(_options...)
return &Writer{
device: device,
options: writerOptions,
tracer: tracer,
- log: options.ExtractCustomLogger(_options...),
+ log: customLogger,
}
}
diff --git a/plc4go/pkg/api/driverManager.go b/plc4go/pkg/api/driverManager.go
index 00bc0d40d5..3ff8aa76cf 100644
--- a/plc4go/pkg/api/driverManager.go
+++ b/plc4go/pkg/api/driverManager.go
@@ -55,7 +55,7 @@ type PlcDriverManager interface {
}
func NewPlcDriverManager(_options ...config.WithOption) PlcDriverManager {
- localLog := options.ExtractCustomLogger(converter.WithOptionToInternal(_options...)...)
+ localLog, _ := options.ExtractCustomLogger(converter.WithOptionToInternal(_options...)...)
localLog.Trace().Msg("Creating plc driver manager")
return &plcDriverManger{
drivers: map[string]PlcDriver{},
diff --git a/plc4go/spi/default/DefaultBrowser.go b/plc4go/spi/default/DefaultBrowser.go
index af614e445c..fbd7779154 100644
--- a/plc4go/spi/default/DefaultBrowser.go
+++ b/plc4go/spi/default/DefaultBrowser.go
@@ -39,10 +39,11 @@ type DefaultBrowser interface {
}
func NewDefaultBrowser(defaultBrowserRequirements DefaultBrowserRequirements, _options ...options.WithOption) DefaultBrowser {
+ customLogger, _ := options.ExtractCustomLogger(_options...)
return &defaultBrowser{
DefaultBrowserRequirements: defaultBrowserRequirements,
- log: options.ExtractCustomLogger(_options...),
+ log: customLogger,
}
}
diff --git a/plc4go/spi/default/DefaultCodec.go b/plc4go/spi/default/DefaultCodec.go
index 6791b150d2..bfaa0ebc82 100644
--- a/plc4go/spi/default/DefaultCodec.go
+++ b/plc4go/spi/default/DefaultCodec.go
@@ -103,15 +103,21 @@ func buildDefaultCodec(defaultCodecRequirements DefaultCodecRequirements, transp
}
}
+ receiveTimeout, timeoutDefined := options.ExtractReceiveTimeout(_options...)
+ if !timeoutDefined {
+ receiveTimeout = 10 * time.Second
+ }
+ traceDefaultMessageCodecWorker, _ := options.ExtractTraceDefaultMessageCodecWorker(_options...)
+ customLogger, _ := options.ExtractCustomLogger(_options...)
return &defaultCodec{
DefaultCodecRequirements: defaultCodecRequirements,
transportInstance: transportInstance,
defaultIncomingMessageChannel: make(chan spi.Message, 100),
expectations: []spi.Expectation{},
customMessageHandling: customMessageHandler,
- receiveTimeout: options.ExtractReceiveTimeout(_options...),
- traceDefaultMessageCodecWorker: options.ExtractTraceDefaultMessageCodecWorker(_options...) || config.TraceDefaultMessageCodecWorker,
- log: options.ExtractCustomLogger(_options...),
+ receiveTimeout: receiveTimeout,
+ traceDefaultMessageCodecWorker: traceDefaultMessageCodecWorker || config.TraceDefaultMessageCodecWorker,
+ log: customLogger,
}
}
diff --git a/plc4go/spi/default/DefaultConnection.go b/plc4go/spi/default/DefaultConnection.go
index 3334de849b..6fe5bef8ea 100644
--- a/plc4go/spi/default/DefaultConnection.go
+++ b/plc4go/spi/default/DefaultConnection.go
@@ -177,13 +177,14 @@ func buildDefaultConnection(requirements DefaultConnectionRequirements, _options
}
}
+ customLogger, _ := options.ExtractCustomLogger(_options...)
return &defaultConnection{
DefaultConnectionRequirements: requirements,
defaultTtl: defaultTtl,
tagHandler: tagHandler,
valueHandler: valueHandler,
- log: options.ExtractCustomLogger(_options...),
+ log: customLogger,
}
}
diff --git a/plc4go/spi/interceptors/SingleItemRequestInterceptor.go b/plc4go/spi/interceptors/SingleItemRequestInterceptor.go
index 458206291b..d03a65f24c 100644
--- a/plc4go/spi/interceptors/SingleItemRequestInterceptor.go
+++ b/plc4go/spi/interceptors/SingleItemRequestInterceptor.go
@@ -80,12 +80,13 @@ type SingleItemRequestInterceptor struct {
}
func NewSingleItemRequestInterceptor(readRequestFactory readRequestFactory, writeRequestFactory writeRequestFactory, readResponseFactory readResponseFactory, writeResponseFactory writeResponseFactory, _options ...options.WithOption) SingleItemRequestInterceptor {
+ customLogger, _ := options.ExtractCustomLogger(_options...)
return SingleItemRequestInterceptor{
readRequestFactory: readRequestFactory,
writeRequestFactory: writeRequestFactory,
readResponseFactory: readResponseFactory,
writeResponseFactory: writeResponseFactory,
- log: options.ExtractCustomLogger(_options...),
+ log: customLogger,
}
}
diff --git a/plc4go/spi/model/DefaultPlcSubscriptionEvent.go b/plc4go/spi/model/DefaultPlcSubscriptionEvent.go
index 3241757fe7..8ee9cc4101 100644
--- a/plc4go/spi/model/DefaultPlcSubscriptionEvent.go
+++ b/plc4go/spi/model/DefaultPlcSubscriptionEvent.go
@@ -62,10 +62,11 @@ func NewDefaultPlcSubscriptionEvent(
valueMap[name] = NewDefaultPlcSubscriptionEventItem(code, tag, subscriptionType, interval, value)
}
+ customLogger, _ := options.ExtractCustomLogger(_options...)
return &DefaultPlcSubscriptionEvent{
DefaultPlcSubscriptionEventRequirements: defaultPlcSubscriptionEventRequirements,
values: valueMap,
- log: options.ExtractCustomLogger(_options...),
+ log: customLogger,
}
}
diff --git a/plc4go/spi/model/DefaultPlcSubscriptionResponse.go b/plc4go/spi/model/DefaultPlcSubscriptionResponse.go
index f36b3dc03e..76af9d95c4 100644
--- a/plc4go/spi/model/DefaultPlcSubscriptionResponse.go
+++ b/plc4go/spi/model/DefaultPlcSubscriptionResponse.go
@@ -46,11 +46,11 @@ func NewDefaultPlcSubscriptionResponse(
request: request,
values: valueMap,
}
- localLog := options.ExtractCustomLogger(_options...)
+ customLogger, _ := options.ExtractCustomLogger(_options...)
for subscriptionTagName, consumers := range request.(*DefaultPlcSubscriptionRequest).preRegisteredConsumers {
subscriptionHandle, err := plcSubscriptionResponse.GetSubscriptionHandle(subscriptionTagName)
if subscriptionHandle == nil || err != nil {
- localLog.Error().Msgf("PlcSubscriptionHandle for %s not found", subscriptionTagName)
+ customLogger.Error().Msgf("PlcSubscriptionHandle for %s not found", subscriptionTagName)
continue
}
for _, consumer := range consumers {
diff --git a/plc4go/spi/options/Option.go b/plc4go/spi/options/Option.go
index 94a89875ec..47c5eabf71 100644
--- a/plc4go/spi/options/Option.go
+++ b/plc4go/spi/options/Option.go
@@ -44,11 +44,11 @@ func WithCustomLogger(logger zerolog.Logger) WithOption {
}
// ExtractCustomLogger can be used to extract the custom logger
-func ExtractCustomLogger(options ...WithOption) (customLogger zerolog.Logger) {
+func ExtractCustomLogger(options ...WithOption) (customLogger zerolog.Logger, found bool) {
for _, option := range options {
switch option := option.(type) {
case withCustomLogger:
- customLogger = option.logger
+ customLogger, found = option.logger, true
}
}
return
@@ -60,11 +60,11 @@ func WithPassLoggerToModel(passLogger bool) WithOption {
}
// ExtractPassLoggerToModel to extract the flag indicating that model should be passed to Model
-func ExtractPassLoggerToModel(options ...WithOption) (passLogger bool) {
+func ExtractPassLoggerToModel(options ...WithOption) (passLogger bool, found bool) {
for _, option := range options {
switch option := option.(type) {
case withPassLoggerToModel:
- passLogger = option.passLogger
+ passLogger, found = option.passLogger, true
}
}
return
@@ -76,12 +76,11 @@ func WithReceiveTimeout(timeout time.Duration) WithOption {
}
// ExtractReceiveTimeout to extract the receive-timeout for reading operations. Defaults to 10 seconds
-func ExtractReceiveTimeout(options ...WithOption) (receiveDuration time.Duration) {
- receiveDuration = 10 * time.Second
+func ExtractReceiveTimeout(options ...WithOption) (receiveDuration time.Duration, found bool) {
for _, option := range options {
switch option := option.(type) {
case withReceiveTimeout:
- receiveDuration = option.timeout
+ receiveDuration, found = option.timeout, true
}
}
return
@@ -93,11 +92,11 @@ func WithTraceTransactionManagerWorkers(traceWorkers bool) WithOption {
}
// ExtractTransactionManagerWorkers to extract the flag indicating to trace transaction manager workers
-func ExtractTransactionManagerWorkers(options ...WithOption) (traceWorkers bool) {
+func ExtractTransactionManagerWorkers(options ...WithOption) (traceWorkers bool, found bool) {
for _, option := range options {
switch option := option.(type) {
case withTraceTransactionManagerWorkers:
- traceWorkers = option.traceWorkers
+ traceWorkers, found = option.traceWorkers, true
}
}
return
@@ -109,11 +108,11 @@ func WithTraceTransactionManagerTransactions(traceTransactions bool) WithOption
}
// ExtractTraceTransactionManagerTransactions to extract the flag indicating to trace transaction manager transactions
-func ExtractTraceTransactionManagerTransactions(options ...WithOption) (traceTransactions bool) {
+func ExtractTraceTransactionManagerTransactions(options ...WithOption) (traceTransactions bool, found bool) {
for _, option := range options {
switch option := option.(type) {
case withTraceTransactionManagerTransactions:
- traceTransactions = option.traceTransactions
+ traceTransactions, found = option.traceTransactions, true
}
}
return
@@ -125,11 +124,11 @@ func WithTraceDefaultMessageCodecWorker(traceWorkers bool) WithOption {
}
// ExtractTraceDefaultMessageCodecWorker to extract the flag indicating to trace default message codec workers
-func ExtractTraceDefaultMessageCodecWorker(options ...WithOption) (traceTransactions bool) {
+func ExtractTraceDefaultMessageCodecWorker(options ...WithOption) (traceWorkers bool, found bool) {
for _, option := range options {
switch option := option.(type) {
- case withTraceTransactionManagerTransactions:
- traceTransactions = option.traceTransactions
+ case withTraceDefaultMessageCodecWorker:
+ traceWorkers, found = option.traceWorkers, true
}
}
return
@@ -154,12 +153,10 @@ func ExtractTracerWorkers(_options ...WithOption) (traceWorkers bool, found bool
// GetLoggerContextForModel returns a log context if the WithPassLoggerToModel WithOption is set
func GetLoggerContextForModel(ctx context.Context, log zerolog.Logger, options ...WithOption) context.Context {
passToModel := false
-optionsSearch:
for _, option := range options {
switch option := option.(type) {
case withPassLoggerToModel:
passToModel = option.passLogger
- break optionsSearch
}
}
if passToModel {
diff --git a/plc4go/spi/pool/WorkerPool.go b/plc4go/spi/pool/WorkerPool.go
index c9e21b6581..92a2fded77 100644
--- a/plc4go/spi/pool/WorkerPool.go
+++ b/plc4go/spi/pool/WorkerPool.go
@@ -45,7 +45,7 @@ type Executor interface {
func NewFixedSizeExecutor(numberOfWorkers, queueDepth int, _options ...options.WithOption) Executor {
workers := make([]*worker, numberOfWorkers)
- customLogger := options.ExtractCustomLogger(_options...)
+ customLogger, _ := options.ExtractCustomLogger(_options...)
for i := 0; i < numberOfWorkers; i++ {
w := worker{
id: i,
@@ -68,7 +68,7 @@ func NewFixedSizeExecutor(numberOfWorkers, queueDepth int, _options ...options.W
}
func NewDynamicExecutor(maxNumberOfWorkers, queueDepth int, _options ...options.WithOption) Executor {
- customLogger := options.ExtractCustomLogger(_options...)
+ customLogger, _ := options.ExtractCustomLogger(_options...)
_executor := &dynamicExecutor{
executor: &executor{
workItems: make(chan workItem, queueDepth),
diff --git a/plc4go/spi/tracer/Tracer.go b/plc4go/spi/tracer/Tracer.go
index 60d6669494..8ae866c23e 100644
--- a/plc4go/spi/tracer/Tracer.go
+++ b/plc4go/spi/tracer/Tracer.go
@@ -56,9 +56,10 @@ type Tracer interface {
}
func NewTracer(connectionId string, _options ...options.WithOption) Tracer {
+ customLogger, _ := options.ExtractCustomLogger(_options...)
t := tracer{
traceEntries: []TraceEntry{},
- log: options.ExtractCustomLogger(_options...),
+ log: customLogger,
}
t.connectionId.Store(connectionId)
return &t
diff --git a/plc4go/spi/transactions/RequestTransactionManager.go b/plc4go/spi/transactions/RequestTransactionManager.go
index 9fc80d6f4d..24f4e35dbd 100644
--- a/plc4go/spi/transactions/RequestTransactionManager.go
+++ b/plc4go/spi/transactions/RequestTransactionManager.go
@@ -67,15 +67,17 @@ type RequestTransactionManager interface {
// NewRequestTransactionManager creates a new RequestTransactionManager
func NewRequestTransactionManager(numberOfConcurrentRequests int, _options ...options.WithOption) RequestTransactionManager {
+ extractTraceTransactionManagerTransactions, _ := options.ExtractTraceTransactionManagerTransactions(_options...)
+ customLogger, _ := options.ExtractCustomLogger(_options...)
_requestTransactionManager := &requestTransactionManager{
numberOfConcurrentRequests: numberOfConcurrentRequests,
currentTransactionId: 0,
workLog: *list.New(),
executor: sharedExecutorInstance,
- traceTransactionManagerTransactions: options.ExtractTraceTransactionManagerTransactions(_options...) || config.TraceTransactionManagerTransactions,
+ traceTransactionManagerTransactions: extractTraceTransactionManagerTransactions || config.TraceTransactionManagerTransactions,
- log: options.ExtractCustomLogger(_options...),
+ log: customLogger,
}
for _, option := range _options {
switch option := option.(type) {
diff --git a/plc4go/spi/transports/pcap/Transport.go b/plc4go/spi/transports/pcap/Transport.go
index 4f921d4b73..50404a736c 100644
--- a/plc4go/spi/transports/pcap/Transport.go
+++ b/plc4go/spi/transports/pcap/Transport.go
@@ -41,8 +41,9 @@ type Transport struct {
}
func NewTransport(_options ...options.WithOption) *Transport {
+ customLogger, _ := options.ExtractCustomLogger(_options...)
return &Transport{
- log: options.ExtractCustomLogger(_options...),
+ log: customLogger,
}
}
diff --git a/plc4go/spi/transports/pcap/TransportInstance.go b/plc4go/spi/transports/pcap/TransportInstance.go
index 3f396d9e93..43001ce40e 100644
--- a/plc4go/spi/transports/pcap/TransportInstance.go
+++ b/plc4go/spi/transports/pcap/TransportInstance.go
@@ -58,6 +58,7 @@ type TransportInstance struct {
}
func NewPcapTransportInstance(transportFile string, transportType TransportType, portRange string, speedFactor float32, transport *Transport, _options ...options.WithOption) *TransportInstance {
+ customLogger, _ := options.ExtractCustomLogger(_options...)
transportInstance := &TransportInstance{
transportFile: transportFile,
transportType: transportType,
@@ -65,7 +66,7 @@ func NewPcapTransportInstance(transportFile string, transportType TransportType,
speedFactor: speedFactor,
transport: transport,
- log: options.ExtractCustomLogger(_options...),
+ log: customLogger,
}
transportInstance.DefaultBufferedTransportInstance = transportUtils.NewDefaultBufferedTransportInstance(transportInstance, _options...)
return transportInstance
diff --git a/plc4go/spi/transports/serial/Transport.go b/plc4go/spi/transports/serial/Transport.go
index ddf617143b..778c335b1f 100644
--- a/plc4go/spi/transports/serial/Transport.go
+++ b/plc4go/spi/transports/serial/Transport.go
@@ -36,8 +36,9 @@ type Transport struct {
}
func NewTransport(_options ...options.WithOption) *Transport {
+ customLogger, _ := options.ExtractCustomLogger(_options...)
return &Transport{
- log: options.ExtractCustomLogger(_options...),
+ log: customLogger,
}
}
diff --git a/plc4go/spi/transports/serial/TransportInstance.go b/plc4go/spi/transports/serial/TransportInstance.go
index afa5e90322..444d1c44c4 100644
--- a/plc4go/spi/transports/serial/TransportInstance.go
+++ b/plc4go/spi/transports/serial/TransportInstance.go
@@ -53,13 +53,14 @@ type TransportInstance struct {
}
func NewTransportInstance(serialPortName string, baudRate uint, connectTimeout uint32, transport *Transport, _options ...options.WithOption) *TransportInstance {
+ customLogger, _ := options.ExtractCustomLogger(_options...)
transportInstance := &TransportInstance{
SerialPortName: serialPortName,
BaudRate: baudRate,
ConnectTimeout: connectTimeout,
transport: transport,
- log: options.ExtractCustomLogger(_options...),
+ log: customLogger,
}
transportInstance.DefaultBufferedTransportInstance = transportUtils.NewDefaultBufferedTransportInstance(transportInstance, _options...)
return transportInstance
diff --git a/plc4go/spi/transports/tcp/Transport.go b/plc4go/spi/transports/tcp/Transport.go
index c85b78773f..29de0fe835 100644
--- a/plc4go/spi/transports/tcp/Transport.go
+++ b/plc4go/spi/transports/tcp/Transport.go
@@ -39,8 +39,9 @@ type Transport struct {
}
func NewTransport(_options ...options.WithOption) *Transport {
+ customLogger, _ := options.ExtractCustomLogger(_options...)
return &Transport{
- log: options.ExtractCustomLogger(_options...),
+ log: customLogger,
}
}
diff --git a/plc4go/spi/transports/tcp/TransportInstance.go b/plc4go/spi/transports/tcp/TransportInstance.go
index df2ffc8be8..6061150566 100644
--- a/plc4go/spi/transports/tcp/TransportInstance.go
+++ b/plc4go/spi/transports/tcp/TransportInstance.go
@@ -54,12 +54,13 @@ type TransportInstance struct {
}
func NewTcpTransportInstance(remoteAddress *net.TCPAddr, connectTimeout uint32, transport *Transport, _options ...options.WithOption) *TransportInstance {
+ customLogger, _ := options.ExtractCustomLogger(_options...)
transportInstance := &TransportInstance{
RemoteAddress: remoteAddress,
ConnectTimeout: connectTimeout,
transport: transport,
- log: options.ExtractCustomLogger(_options...),
+ log: customLogger,
}
transportInstance.DefaultBufferedTransportInstance = transportUtils.NewDefaultBufferedTransportInstance(transportInstance, _options...)
return transportInstance
diff --git a/plc4go/spi/transports/test/Transport.go b/plc4go/spi/transports/test/Transport.go
index 21c88ceedb..0ea59b645a 100644
--- a/plc4go/spi/transports/test/Transport.go
+++ b/plc4go/spi/transports/test/Transport.go
@@ -35,9 +35,10 @@ type Transport struct {
}
func NewTransport(_options ...options.WithOption) *Transport {
+ customLogger, _ := options.ExtractCustomLogger(_options...)
return &Transport{
preregisteredInstances: map[url.URL]transports.TransportInstance{},
- log: options.ExtractCustomLogger(_options...),
+ log: customLogger,
}
}
diff --git a/plc4go/spi/transports/test/TransportInstance.go b/plc4go/spi/transports/test/TransportInstance.go
index 936f4dae40..224079aa35 100644
--- a/plc4go/spi/transports/test/TransportInstance.go
+++ b/plc4go/spi/transports/test/TransportInstance.go
@@ -49,12 +49,13 @@ type TransportInstance struct {
}
func NewTransportInstance(transport *Transport, _options ...options.WithOption) *TransportInstance {
+ customLogger, _ := options.ExtractCustomLogger(_options...)
return &TransportInstance{
readBuffer: []byte{},
writeBuffer: []byte{},
transport: transport,
- log: options.ExtractCustomLogger(_options...),
+ log: customLogger,
}
}
diff --git a/plc4go/spi/transports/udp/Transport.go b/plc4go/spi/transports/udp/Transport.go
index e06abc84c1..268d75a865 100644
--- a/plc4go/spi/transports/udp/Transport.go
+++ b/plc4go/spi/transports/udp/Transport.go
@@ -36,8 +36,9 @@ type Transport struct {
}
func NewTransport(_options ...options.WithOption) *Transport {
+ customLogger, _ := options.ExtractCustomLogger(_options...)
return &Transport{
- log: options.ExtractCustomLogger(_options...),
+ log: customLogger,
}
}
diff --git a/plc4go/spi/transports/udp/TransportInstance.go b/plc4go/spi/transports/udp/TransportInstance.go
index 383123ada8..42a18f74af 100644
--- a/plc4go/spi/transports/udp/TransportInstance.go
+++ b/plc4go/spi/transports/udp/TransportInstance.go
@@ -52,6 +52,7 @@ type TransportInstance struct {
}
func NewTransportInstance(localAddress *net.UDPAddr, remoteAddress *net.UDPAddr, connectTimeout uint32, soReUse bool, transport *Transport, _options ...options.WithOption) *TransportInstance {
+ logger, _ := options.ExtractCustomLogger(_options...)
return &TransportInstance{
LocalAddress: localAddress,
RemoteAddress: remoteAddress,
@@ -59,7 +60,7 @@ func NewTransportInstance(localAddress *net.UDPAddr, remoteAddress *net.UDPAddr,
SoReUse: soReUse,
transport: transport,
- log: options.ExtractCustomLogger(_options...),
+ log: logger,
}
}
diff --git a/plc4go/spi/transports/utils/DefaultBufferedTransportInstance.go b/plc4go/spi/transports/utils/DefaultBufferedTransportInstance.go
index 2c4df42d6a..8d11c5bc15 100644
--- a/plc4go/spi/transports/utils/DefaultBufferedTransportInstance.go
+++ b/plc4go/spi/transports/utils/DefaultBufferedTransportInstance.go
@@ -45,9 +45,10 @@ type DefaultBufferedTransportInstance interface {
}
func NewDefaultBufferedTransportInstance(defaultBufferedTransportInstanceRequirements DefaultBufferedTransportInstanceRequirements, _options ...options.WithOption) DefaultBufferedTransportInstance {
+ customLogger, _ := options.ExtractCustomLogger(_options...)
return &defaultBufferedTransportInstance{
DefaultBufferedTransportInstanceRequirements: defaultBufferedTransportInstanceRequirements,
- log: options.ExtractCustomLogger(_options...),
+ log: customLogger,
}
}
diff --git a/plc4go/spi/values/PlcValueHandler.go b/plc4go/spi/values/PlcValueHandler.go
index 1156ec6608..8cf07e776b 100644
--- a/plc4go/spi/values/PlcValueHandler.go
+++ b/plc4go/spi/values/PlcValueHandler.go
@@ -38,8 +38,9 @@ type DefaultValueHandler struct {
}
func NewDefaultValueHandler(_options ...options.WithOption) DefaultValueHandler {
+ customLogger, _ := options.ExtractCustomLogger(_options...)
return DefaultValueHandler{
- log: options.ExtractCustomLogger(_options...),
+ log: customLogger,
}
}