Skip to content

feat(mw/log): add Linux syslog backend for LogMode::kSystem - #271

Open
btirunagaru wants to merge 1 commit into
eclipse-score:mainfrom
qualcomm:feat/syslog_on_linux
Open

feat(mw/log): add Linux syslog backend for LogMode::kSystem#271
btirunagaru wants to merge 1 commit into
eclipse-score:mainfrom
qualcomm:feat/syslog_on_linux

Conversation

@btirunagaru

@btirunagaru btirunagaru commented Aug 21, 2026

Copy link
Copy Markdown

Description

Adds a Linux syslog(3) backend for mw::log's LogMode::kSystem slot
(SyslogBackend + SyslogRecorderFactory + BackendRegistrant), following
the existing QNX slog backend's design. Includes unit tests against
score_baselibs//score/os/mocklib:syslog_mock covering log-level to
syslog-priority mapping and slot lifecycle.

Depends on the companion score::os::Syslog OS wrapper contributed to
baselibs (eclipse-score/baselibs#501,
@score_baselibs//score/os:syslog) — should merge/release together.

Related ticket

closes #270

Relates to eclipse-score/baselibs#501, implemented in eclipse-score/baselibs#502

@github-actions

github-actions Bot commented Aug 21, 2026

Copy link
Copy Markdown

License Check Results

🚀 The license check job ran with the Bazel command:

bazel run --lockfile_mode=error //:license-check

Status: ⚠️ Needs Review

Click to expand output
[License Check Output]
Extracting Bazel installation...
Starting local Bazel server (8.6.0) and connecting to it...
INFO: Invocation ID: 971a95ae-bee4-4358-a693-4ebfbd4f985e
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Loading: 
Loading: 4 packages loaded
WARNING: Target pattern parsing failed.
ERROR: Skipping '//:license-check': no such target '//:license-check': target 'license-check' not declared in package '' defined by /home/runner/work/logging/logging/BUILD
ERROR: no such target '//:license-check': target 'license-check' not declared in package '' defined by /home/runner/work/logging/logging/BUILD
INFO: Elapsed time: 15.750s
INFO: 0 processes.
ERROR: Build did NOT complete successfully
ERROR: Build failed. Not running target

@rmaddikery rmaddikery left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the contribution. I would first request the following:
Component requirements updated/added to clarify the expectation and understand how it could be achieved. Hence additionally supporting static/dynamic diagrams. Once this is finalized we can look into the source files. Please note that we are still in the migration phase of the repository from an internal one. Until we have established the quality gating and traceability of the requirements, no changes are merged here directly. In that regard we ask you for your patience. If you have questions please reach out to us in the Logging CFT: https://github.com/orgs/eclipse-score/discussions/3192

@btirunagaru

Copy link
Copy Markdown
Author

Thanks for the contribution. I would first request the following: Component requirements updated/added to clarify the expectation and understand how it could be achieved. Hence additionally supporting static/dynamic diagrams. Once this is finalized we can look into the source files. Please note that we are still in the migration phase of the repository from an internal one. Until we have established the quality gating and traceability of the requirements, no changes are merged here directly. In that regard we ask you for your patience. If you have questions please reach out to us in the Logging CFT: https://github.com/orgs/eclipse-score/discussions/3192

updated the component requirements and other documents as requested. please let us know the timeline for submission of this change. we require this support to deploy the product on the linux aarch64 on our targets- as we cannot ship the component with console logs enabled in our PDLC.

@rmaddikery

Copy link
Copy Markdown
Contributor

Thanks for the contribution. I would first request the following: Component requirements updated/added to clarify the expectation and understand how it could be achieved. Hence additionally supporting static/dynamic diagrams. Once this is finalized we can look into the source files. Please note that we are still in the migration phase of the repository from an internal one. Until we have established the quality gating and traceability of the requirements, no changes are merged here directly. In that regard we ask you for your patience. If you have questions please reach out to us in the Logging CFT: https://github.com/orgs/eclipse-score/discussions/3192

updated the component requirements and other documents as requested. please let us know the timeline for submission of this change. we require this support to deploy the product on the linux aarch64 on our targets- as we cannot ship the component with console logs enabled in our PDLC.

Timeline is v1.0 as per: https://github.com/eclipse-score/score/milestones
If this is urgent, then we can try our best to include it after v0.9 is released

@btirunagaru

Copy link
Copy Markdown
Author

Thanks for the contribution. I would first request the following: Component requirements updated/added to clarify the expectation and understand how it could be achieved. Hence additionally supporting static/dynamic diagrams. Once this is finalized we can look into the source files. Please note that we are still in the migration phase of the repository from an internal one. Until we have established the quality gating and traceability of the requirements, no changes are merged here directly. In that regard we ask you for your patience. If you have questions please reach out to us in the Logging CFT: https://github.com/orgs/eclipse-score/discussions/3192

updated the component requirements and other documents as requested. please let us know the timeline for submission of this change. we require this support to deploy the product on the linux aarch64 on our targets- as we cannot ship the component with console logs enabled in our PDLC.

Timeline is v1.0 as per: https://github.com/eclipse-score/score/milestones If this is urgent, then we can try our best to include it after v0.9 is released

yes, this is needed to meet our internal timelines. I would appreciate ,if we can accommodate to release this in 0.9.
Assuming community will benefit from this as well. Relatively independent feature as its adding syslog (similar to slog for qnx - which is already present) capability . writing logs to a system syslog ( which is only invoked if the users go with kSystem ).

@btirunagaru
btirunagaru requested a review from rmaddikery August 26, 2026 18:29
@btirunagaru
btirunagaru marked this pull request as ready for review August 26, 2026 18:32
@btirunagaru

Copy link
Copy Markdown
Author

@rmaddikery Can you please review this and take to the next steps ? would like to get this get merged as soon as practical.

@rmaddikery

rmaddikery commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

@btirunagaru Please cleanup the commits (clean history; ideally squash) and then I will import it and sync it back as discussed over the meeting.

Adds a Linux syslog mw::log backend that fills the LogMode::kSystem slot on Linux (HGY aarch64 and x86 host), mirroring the existing QNX slog backend exactly. slog is target_compatible_with os:qnx and this new backend is target_compatible_with os:linux, so exactly one compiles per build and both can safely reuse the same kSystem slot without any LogMode/dispatch changes.

- Add SyslogBackend and SyslogRecorderFactory using the companion score::os::Syslog wrapper.
- Map mw::log levels to POSIX syslog priorities and format the application/context identifiers with the log payload.
- Register the Linux backend for LogMode::kSystem.
- Add Linux backend and recorder-factory unit tests using the syslog mock.
- Add requirements, static/dynamic diagrams, and detailed-design documentation for the Linux backend.

Verification:
- Existing PR tests and checks passed before history cleanup.
- The final squashed diff will be checked with git diff --check.
@btirunagaru

Copy link
Copy Markdown
Author

@btirunagaru Please cleanup the commits (clean history; ideally squash) and then I will import it and sync it back as discussed over the meeting.

@rmaddikery done -squashed both PRs.

{
RecordProperty("Description", "Verifies the ability of reserving slot.");
RecordProperty("TestingTechnique", "Requirements-based test");
RecordProperty("DerivationTechnique", "Analysis of requirements");

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A Requirements-based test needs to be linked. E.g.:

RecordProperty("PartiallyVerifies", "comp_req__log__cross_locking");

@rmaddikery

Copy link
Copy Markdown
Contributor

@btirunagaru Please cleanup the commits (clean history; ideally squash) and then I will import it and sync it back as discussed over the meeting.

@rmaddikery done -squashed both PRs.

@btirunagaru please rebase and push again. Additionally fix:
#271 (comment)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Backlog

Development

Successfully merging this pull request may close these issues.

feat: Add Linux syslog backend for mw::log LogMode::kSystem

2 participants