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 4f4079c1e3 feat(plc4go): add more connection details to logging
4f4079c1e3 is described below

commit 4f4079c1e34cafa0129e4195ba39ab5d82f51cb5
Author: Sebastian Rühl <[email protected]>
AuthorDate: Fri Nov 21 14:12:09 2025 +0100

    feat(plc4go): add more connection details to logging
---
 plc4go/internal/ads/Driver.go           |  1 +
 plc4go/internal/modbus/AsciiDriver.go   | 20 +++++++++-----------
 plc4go/internal/modbus/Connection.go    |  1 +
 plc4go/internal/modbus/RtuDriver.go     | 20 +++++++++-----------
 plc4go/internal/modbus/TcpDriver.go     | 20 +++++++++-----------
 plc4go/internal/simulated/Connection.go |  5 +++--
 6 files changed, 32 insertions(+), 35 deletions(-)

diff --git a/plc4go/internal/ads/Driver.go b/plc4go/internal/ads/Driver.go
index fc98734b32..dd93635962 100644
--- a/plc4go/internal/ads/Driver.go
+++ b/plc4go/internal/ads/Driver.go
@@ -101,6 +101,7 @@ func (d *Driver) GetConnection(ctx context.Context, 
transportUrl url.URL, transp
                connectionLog.Error().Err(err).Msg("Invalid driverOptions")
                return nil, errors.Wrap(err, "invalid configuration")
        }
+       // TODO: check if we want to attach the configuration to the logger
 
        // Create the new connection
        connection, err := NewConnection(codec, configuration, driverOptions)
diff --git a/plc4go/internal/modbus/AsciiDriver.go 
b/plc4go/internal/modbus/AsciiDriver.go
index c0a042b79b..c0ac7a7926 100644
--- a/plc4go/internal/modbus/AsciiDriver.go
+++ b/plc4go/internal/modbus/AsciiDriver.go
@@ -57,6 +57,15 @@ func NewModbusAsciiDriver(_options ...options.WithOption) 
*AsciiDriver {
 
 func (d *AsciiDriver) GetConnection(ctx context.Context, transportUrl url.URL, 
transports map[string]transports.Transport, driverOptions map[string][]string) 
(plc4go.PlcConnection, error) {
        connectionLog := d.log.With().Ctx(ctx).Str("transportUrl", 
transportUrl.String()).Logger()
+       // If a unit-identifier was provided in the connection string use this, 
otherwise use the default of 1
+       unitIdentifier := uint8(1)
+       if value, ok := driverOptions["unit-identifier"]; ok {
+               if intValue, err := strconv.ParseUint(value[0], 10, 8); err == 
nil {
+                       unitIdentifier = uint8(intValue)
+               }
+               connectionLog.Debug().Uint8("unitIdentifier", 
unitIdentifier).Msg("using unit identifier")
+       }
+       connectionLog = connectionLog.With().Uint8("unitIdentifier", 
unitIdentifier).Logger()
        connectionLog.Debug().
                Int("nTransports", len(transports)).
                Int("nDriverOptions", len(driverOptions)).
@@ -110,17 +119,6 @@ func (d *AsciiDriver) GetConnection(ctx context.Context, 
transportUrl url.URL, t
        )
        connectionLog.Debug().Interface("codec", codec).Msg("working with 
codec")
 
-       // If a unit-identifier was provided in the connection string use this, 
otherwise use the default of 1
-       unitIdentifier := uint8(1)
-       if value, ok := driverOptions["unit-identifier"]; ok {
-               var intValue uint64
-               intValue, err = strconv.ParseUint(value[0], 10, 8)
-               if err == nil {
-                       unitIdentifier = uint8(intValue)
-               }
-       }
-       connectionLog.Debug().Uint8("unitIdentifier", 
unitIdentifier).Msg("using unit identifier")
-
        // Create the new connection
        connection := NewConnection(
                unitIdentifier,
diff --git a/plc4go/internal/modbus/Connection.go 
b/plc4go/internal/modbus/Connection.go
index 2deb222122..26003642dd 100644
--- a/plc4go/internal/modbus/Connection.go
+++ b/plc4go/internal/modbus/Connection.go
@@ -40,6 +40,7 @@ import (
 
 type Connection struct {
        _default.DefaultConnection
+
        unitIdentifier     uint8
        messageCodec       spi.MessageCodec
        options            map[string][]string
diff --git a/plc4go/internal/modbus/RtuDriver.go 
b/plc4go/internal/modbus/RtuDriver.go
index db52667226..8bf8bac260 100644
--- a/plc4go/internal/modbus/RtuDriver.go
+++ b/plc4go/internal/modbus/RtuDriver.go
@@ -57,6 +57,15 @@ func NewModbusRtuDriver(_options ...options.WithOption) 
*RtuDriver {
 
 func (d *RtuDriver) GetConnection(ctx context.Context, transportUrl url.URL, 
transports map[string]transports.Transport, driverOptions map[string][]string) 
(plc4go.PlcConnection, error) {
        connectionLog := d.log.With().Ctx(ctx).Str("transportUrl", 
transportUrl.String()).Logger()
+       // If a unit-identifier was provided in the connection string use this, 
otherwise use the default of 1
+       unitIdentifier := uint8(1)
+       if value, ok := driverOptions["unit-identifier"]; ok {
+               if intValue, err := strconv.ParseUint(value[0], 10, 8); err == 
nil {
+                       unitIdentifier = uint8(intValue)
+               }
+               connectionLog.Debug().Uint8("unitIdentifier", 
unitIdentifier).Msg("using unit identifier")
+       }
+       connectionLog = connectionLog.With().Uint8("unitIdentifier", 
unitIdentifier).Logger()
        connectionLog.Debug().
                Int("nTransports", len(transports)).
                Int("nDriverOptions", len(driverOptions)).
@@ -110,17 +119,6 @@ func (d *RtuDriver) GetConnection(ctx context.Context, 
transportUrl url.URL, tra
        )
        connectionLog.Debug().Interface("codec", codec).Msg("working with 
codec")
 
-       // If a unit-identifier was provided in the connection string use this, 
otherwise use the default of 1
-       unitIdentifier := uint8(1)
-       if value, ok := driverOptions["unit-identifier"]; ok {
-               var intValue uint64
-               intValue, err = strconv.ParseUint(value[0], 10, 8)
-               if err == nil {
-                       unitIdentifier = uint8(intValue)
-               }
-       }
-       connectionLog.Debug().Uint8("unitIdentifier", 
unitIdentifier).Msg("using unit identifier")
-
        // Create the new connection
        connection := NewConnection(
                unitIdentifier,
diff --git a/plc4go/internal/modbus/TcpDriver.go 
b/plc4go/internal/modbus/TcpDriver.go
index 85070a935e..16ca8cadb5 100644
--- a/plc4go/internal/modbus/TcpDriver.go
+++ b/plc4go/internal/modbus/TcpDriver.go
@@ -57,6 +57,15 @@ func NewModbusTcpDriver(_options ...options.WithOption) 
*TcpDriver {
 
 func (d *TcpDriver) GetConnection(ctx context.Context, transportUrl url.URL, 
transports map[string]transports.Transport, driverOptions map[string][]string) 
(plc4go.PlcConnection, error) {
        connectionLog := d.log.With().Ctx(ctx).Str("transportUrl", 
transportUrl.String()).Logger()
+       // If a unit-identifier was provided in the connection string use this, 
otherwise use the default of 1
+       unitIdentifier := uint8(1)
+       if value, ok := driverOptions["unit-identifier"]; ok {
+               if intValue, err := strconv.ParseUint(value[0], 10, 8); err == 
nil {
+                       unitIdentifier = uint8(intValue)
+               }
+               connectionLog.Debug().Uint8("unitIdentifier", 
unitIdentifier).Msg("using unit identifier")
+       }
+       connectionLog = connectionLog.With().Uint8("unitIdentifier", 
unitIdentifier).Logger()
        connectionLog.Debug().
                Int("nTransports", len(transports)).
                Int("nDriverOptions", len(driverOptions)).
@@ -110,17 +119,6 @@ func (d *TcpDriver) GetConnection(ctx context.Context, 
transportUrl url.URL, tra
        )
        connectionLog.Debug().Interface("codec", codec).Msg("working with 
codec")
 
-       // If a unit-identifier was provided in the connection string use this, 
otherwise use the default of 1
-       unitIdentifier := uint8(1)
-       if value, ok := driverOptions["unit-identifier"]; ok {
-               var intValue uint64
-               intValue, err = strconv.ParseUint(value[0], 10, 8)
-               if err == nil {
-                       unitIdentifier = uint8(intValue)
-               }
-       }
-       connectionLog.Debug().Uint8("unitIdentifier", 
unitIdentifier).Msg("using unit identifier")
-
        // Create the new connection
        connection := NewConnection(
                unitIdentifier,
diff --git a/plc4go/internal/simulated/Connection.go 
b/plc4go/internal/simulated/Connection.go
index 9452a1d694..9cbf2e4211 100644
--- a/plc4go/internal/simulated/Connection.go
+++ b/plc4go/internal/simulated/Connection.go
@@ -53,15 +53,16 @@ type Connection struct {
 
 func NewConnection(device *Device, tagHandler spi.PlcTagHandler, valueHandler 
spi.PlcValueHandler, connectionOptions map[string][]string, _options 
...options.WithOption) *Connection {
        customLogger := 
options.ExtractCustomLoggerOrDefaultToGlobal(_options...)
+       connectionId := utils.GenerateId(4)
        connection := &Connection{
                device:       device,
                tagHandler:   tagHandler,
                valueHandler: valueHandler,
                options:      connectionOptions,
                connected:    false,
-               connectionId: utils.GenerateId(4),
+               connectionId: connectionId,
 
-               log: customLogger,
+               log: customLogger.With().Str("connectionId", 
connectionId).Logger(),
        }
        if traceEnabledOption, ok := connectionOptions["traceEnabled"]; ok {
                if len(traceEnabledOption) == 1 {

Reply via email to