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 {