Skip to content

Releases: eclipse-score/logging

v0.0.4

22 Dec 08:17

Choose a tag to compare

Overview

The Eclipse SCORE Logging module provides a comprehensive logging framework for automotive embedded systems, featuring remote DLT (Diagnostic Log and Trace) capabilities with lock-free communication between applications and the datarouter daemon.

This is the initial open-source release of the logging framework, consolidating the complete project structure with build system, dependencies, and tooling for integration into Eclipse SCORE projects.

The module is designed for Bazel-based builds and provides both the middleware logging library (score/mw/log) that includes all supported recorders with respective backends and the datarouter daemon (score/datarouter). The shared memory implementation between the middleware library and datarouter daemon guarantees Freedom From Interference (FFI), enabling safe logging from real-time and safety-critical contexts.

Disclaimer

This release is not intended for production use, as it does not include a completed safety argumentation or safety assessment. The work products are created with care according to the Eclipse SCORE process. However, as a non-profit, open-source organization, the project cannot assume any liability for its content.

Key Components

Data Router Daemon (score/datarouter)

DLT daemon implementation providing:

  • DLT protocol support
  • Lock-free shared memory IPC with ring buffers
  • Context-based filtering and priority routing
  • Real-time statistics (throughput, latency, buffer utilization)
  • Message gap detection and reporting
  • Error handling framework

Middleware Library (score/mw/log)

Support for multiple backends:

  • Safe Data Router Backend: Based on Lock-free shared memory communication
  • File Backend: Direct DLT file recording
  • SLOG Backend: System logging with QNX support
  • Composite Recorder: Multiple simultaneous backends
  • Wait-free producer queues for real-time contexts
  • Automatic C++ type serialization to DLT format
  • FFI: Freedom From interferance guaranteed

Build System & Tooling

  • Complete Bazel MODULE.bazel with dependencies
  • Custom GCC and LLVM toolchain configurations
  • Initial setup of LOBSTER integration with Treat Requirements Like Code (TRLC) for requirements tracing
  • JSON schema validator
  • GTest-based unit test infrastructure

Documentation & Examples

  • Architecture and design documentation
  • Configuration guidelines with JSON examples
  • DLT packet capture demo
  • Lock-free concept documentation
  • Shared memory API documentation

Technical Highlights

  • Zero-Copy Architecture: Shared memory eliminates data copying between applications and datarouter
  • Configurable Strategies: Tunable buffer sizes, overwrite policies, and message quotas
  • DLT Protocol Compliance: Compatible with standard DLT viewers and tools
  • JSON Configuration: Standard configuration files in etc/ directory

Build Instructions

# Build datarouter daemon
bazel build //score/datarouter:datarouter

# Build middleware library
bazel build //score/mw/log/...

# Run tests
bazel test //score/datarouter/test/ut/... //score/mw/log/...

Compatibility

  • Platform: x86_64-unknown-linux-gnu (GCC toolchain)
  • Build System: Bazel
  • Language: C++17 or later

Verification

  • Initial build system setup verified
  • Bazel build configurations tested
  • Unit tests executed in the available default platform support

Known Issues

  • Safety assessment and argumentation missing
  • Cross-platform builds (QNX) is not supported yet
  • Component and Integration tests not included

Future Work

  • Cross-platform builds based on QNX toolchain
  • Additional platform support
  • Requirements traceability using TRLC and Lobster integration.

Contributing

See CONTRIBUTING.md for code style, commit conventions, and pull request process.

Contact

References

v0.0.3

19 Dec 10:35
763c537

Choose a tag to compare

Overview

The Eclipse SCORE Logging module provides a comprehensive logging framework for automotive embedded systems, featuring remote DLT (Diagnostic Log and Trace) capabilities with lock-free communication between applications and the datarouter daemon.

This is the initial open-source release of the logging framework, consolidating the complete project structure with build system, dependencies, and tooling for integration into Eclipse SCORE projects.

The module is designed for Bazel-based builds and provides both the middleware logging library (score/mw/log) that includes all supported recorders with respective backends and the datarouter daemon (score/datarouter). The shared memory implementation between the middleware library and datarouter daemon guarantees Freedom From Interference (FFI), enabling safe logging from real-time and safety-critical contexts.

Disclaimer

This release is not intended for production use, as it does not include a completed safety argumentation or safety assessment. The work products are created with care according to the Eclipse SCORE process. However, as a non-profit, open-source organization, the project cannot assume any liability for its content.

Key Components

Data Router Daemon (score/datarouter)

DLT daemon implementation providing:

  • DLT protocol support
  • Lock-free shared memory IPC with ring buffers
  • Context-based filtering and priority routing
  • Real-time statistics (throughput, latency, buffer utilization)
  • Message gap detection and reporting
  • Error handling framework

Middleware Library (score/mw/log)

Support for multiple backends:

  • Safe Data Router Backend: Based on Lock-free shared memory communication
  • File Backend: Direct DLT file recording
  • SLOG Backend: System logging with QNX support
  • Composite Recorder: Multiple simultaneous backends
  • Wait-free producer queues for real-time contexts
  • Automatic C++ type serialization to DLT format
  • FFI: Freedom From interferance guaranteed

Build System & Tooling

  • Complete Bazel MODULE.bazel with dependencies
  • Custom GCC and LLVM toolchain configurations
  • Initial setup of LOBSTER integration with Treat Requirements Like Code (TRLC) for requirements tracing
  • JSON schema validator
  • GTest-based unit test infrastructure

Documentation & Examples

  • Architecture and design documentation
  • Configuration guidelines with JSON examples
  • DLT packet capture demo
  • Lock-free concept documentation
  • Shared memory API documentation

Technical Highlights

  • Zero-Copy Architecture: Shared memory eliminates data copying between applications and datarouter
  • Configurable Strategies: Tunable buffer sizes, overwrite policies, and message quotas
  • DLT Protocol Compliance: Compatible with standard DLT viewers and tools
  • JSON Configuration: Standard configuration files in etc/ directory

Build Instructions

# Build datarouter daemon
bazel build //score/datarouter:datarouter

# Build middleware library
bazel build //score/mw/log/...

# Run tests
bazel test //score/datarouter/test/ut/... //score/mw/log/...

Compatibility

  • Platform: x86_64-unknown-linux-gnu (GCC toolchain)
  • Build System: Bazel
  • Language: C++17 or later

Verification

  • Initial build system setup verified
  • Bazel build configurations tested
  • Unit tests executed in the available default platform support

Known Issues

  • Safety assessment and argumentation missing
  • Cross-platform builds (QNX) is not supported yet
  • Component and Integration tests not included

Future Work

  • Cross-platform builds based on QNX toolchain
  • Additional platform support
  • Requirements traceability using TRLC and Lobster integration.

Contributing

See CONTRIBUTING.md for code style, commit conventions, and pull request process.

Contact

References

Initial Release

24 Oct 12:24
fffdb25

Choose a tag to compare

  • Initial version of Log backend for rust frontend

This is logger impl that bridges rust log frontend
with C++ mw_log implementation

Initial Release

24 Oct 11:23
1330010

Choose a tag to compare

Initial Release Pre-release
Pre-release
  • Initial version of Log backend for rust frontend

This is logger impl that bridges rust log frontend
with C++ mw_log implementation