Releases: eclipse-score/logging
v0.0.4
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
- Repository: https://github.com/eclipse-score/logging
- Issues: https://github.com/eclipse-score/logging/issues
- Discussions: https://github.com/orgs/eclipse-score/discussions (Logging CFT)
- Slack: https://sdvworkinggroup.slack.com/archives/C089XP2PGQZ
References
- Eclipse SCORE: https://projects.eclipse.org/projects/automotive.score
- Design Docs: score/datarouter/doc/design/
- Guidelines: score/datarouter/doc/guideline/
v0.0.3
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
- Repository: https://github.com/eclipse-score/logging
- Issues: https://github.com/eclipse-score/logging/issues
- Discussions: https://github.com/orgs/eclipse-score/discussions (Logging CFT)
- Slack: https://sdvworkinggroup.slack.com/archives/C089XP2PGQZ
References
- Eclipse SCORE: https://projects.eclipse.org/projects/automotive.score
- Design Docs: score/datarouter/doc/design/
- Guidelines: score/datarouter/doc/guideline/
Initial Release
- Initial version of Log backend for rust frontend
This is logger impl that bridges rust log frontend
with C++ mw_log implementation
Initial Release
- Initial version of Log backend for rust frontend
This is logger impl that bridges rust log frontend
with C++ mw_log implementation