Fixing some of the diagrams in the mw/log section#71
Fixing some of the diagrams in the mw/log section#71MaciejKaszynski wants to merge 7 commits intoeclipse-score:mainfrom
Conversation
MaciejKaszynski
commented
Jan 20, 2026
- Diagrams were taken from https://github.com/eclipse-score/inc_mw_log and converted from uxf to puml.
- Also fixed the links to embed the new diagrams in the markdown.
- Note: the links will work after the diagrams are merged to main.
- Diagrams related to datarouter shall be in the seperate eclipse-score/logging repo
|
The created documentation from the pull request is available at: docu-html |
|
@rmaddikery, @hoppe-and-dreams, can you please review this PR? |
|
@MaciejKaszynski |
|
|
||
| activate App | ||
|
|
||
| App -> LOG **: CreateLogger(...) |
There was a problem hiding this comment.
The CreateLogger only registers a logger in the container butdoes not trigger the runtime initialization. The initialization is triggered by the first log call. A note would make sense here.
|
|
||
| RF -> RT: Store returned instance | ||
|
|
||
| RT -> LSF |
There was a problem hiding this comment.
| RT -> LSF | |
| LSF <- RT: Return Recorder reference |
|
|
||
| TCR -> RF: Return Configuration instance | ||
|
|
||
| group Possibilities |
There was a problem hiding this comment.
Currently there are two possibilities:
At compile time:
- Console only recorder with console backend
- log mode is set to console logging by default.
- Empty recorder if logmode other than KConsole is provided.
- All recorders will respective backends
- Depending on the log mode the runtime sets up the recorders. The log mode supports multiple recorders simultaneously through a composite recorder.
| class score::mw::log::detail::Configuration {} | ||
| class score::mw::log::detail::TargetConfigReader {} | ||
|
|
||
| class score::mw::log::detail::DataRouterRecorder {} |
There was a problem hiding this comment.
Please revisit because only the EmptyRecorder, ConsoleRecorder and ConsoleRecorderFactory are included in the frontend.
| note top of frontend | ||
| Frontend contains the public user API, | ||
| and the necessary classes to interface | ||
| with the backend and implementation details. |
There was a problem hiding this comment.
| with the backend and implementation details. | |
| with the recorder interface. |
|
|
||
| score::mw::log::Recorder <|-- score::mw::log::detail::FileRecorder | ||
| score::mw::log::IRecorderFactory <|-- score::mw::log::detail::FileRecorderFactory | ||
| score::mw::log::detail::FileRecorderFactory ..> score::mw::log::detail::FileRecorder |
There was a problem hiding this comment.
| @@ -0,0 +1,43 @@ | |||
| @startuml verbose_logging_ara_log_interaction | |||
There was a problem hiding this comment.
This is legacy and no longer supported here hence should be removed.
| :Stack capacity full = true; | ||
| else (No) | ||
| :Push element to stack; | ||
| :Memory Fence (Release); |
There was a problem hiding this comment.
| :Memory Fence (Release); | |
| :Memory Fence (Release); | |
| mark element as writen |
| stop | ||
| endif | ||
| endif | ||
| :Return null value; |
There was a problem hiding this comment.
| :Return null value; | |
| :Return nullopt |
| else (No) | ||
| :Push element to stack; | ||
| :Memory Fence (Release); | ||
| :Return element value; |
There was a problem hiding this comment.
| :Return element value; | |
| :Return reference to element |
| RF -> RT: Store returned instance | ||
|
|
||
| RT -> LSF | ||
| LSF -> LOG: Return Recorder instance |
There was a problem hiding this comment.
| LSF -> LOG: Return Recorder instance | |
| LOG <- LSF: Return LogStream with Recorder |
| SlotDrainer -> MessageBuilder : SetNextMessage(log_record) | ||
|
|
||
| SlotDrainer -> NonBlockingWriter : FlushIntoFile() | ||
| NonBlockingWriter -> SlotDrainer: kDone |
There was a problem hiding this comment.
| NonBlockingWriter -> SlotDrainer: kDone | |
| NonBlockingWriter -> SlotDrainer: kDone | |
| ReleaseSlot() // slots are returned to the pool after being flushed. |
The SlotDrainer is responsible for resource lifecycle management and not just data transfer.
| SlotDrainer -> MessageBuilder : GetNextSpan() | ||
|
|
||
| SlotDrainer -> NonBlockingWriter : FlushIntoFile() | ||
| NonBlockingWriter -> SlotDrainer: kDone |
There was a problem hiding this comment.
This is the happy case. It would be good to show the kWouldBlock sequence as well
There was a problem hiding this comment.
I added this on f38c3f7 However because of
I think the error would simply be ignored and later flushed so not sure if it makes sense to add
rmaddikery
left a comment
There was a problem hiding this comment.
Thanks, comments need to be addressed