configuring logging is awkward and unreliable
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Mir |
Confirmed
|
Medium
|
Unassigned | ||
mir (Ubuntu) |
Confirmed
|
Medium
|
Unassigned |
Bug Description
We have three(!) ways to configure logging:
1. (On startup configuring the server) server.
2. (On startup configuring the client by a debug API) Override ConnectionConfi
3. (At any time) mir::logging:
All of these are C++ APIs and none are part of the client "toolkit".
The first method is a public API and directs the output of the server reports and of calls to mir::log* (at least until the third method is used).
The second method is a private API and directs the output of client reports. (But not calls to mir::log*.)
The third method is a public C++ API and directs the output of calls to mir::log* and the client reports (unless the second method was used). (But not the server reports.)
It wasn't confusing before the third method was introduced (with the mir::log* functions). Maybe we should deprecate it?
Related branches
- Chris Halse Rogers: Approve
- Cemil Azizoglu (community): Approve
- Mir CI Bot: Approve (continuous-integration)
-
Diff: 130 lines (+28/-40)2 files modifiedsrc/client/default_connection_configuration.cpp (+9/-5)
tests/acceptance-tests/test_client_logging.cpp (+19/-35)
Changed in mir: | |
assignee: | nobody → Alan Griffiths (alan-griffiths) |
importance: | Undecided → Medium |
status: | Confirmed → Fix Committed |
milestone: | none → 0.21.0 |
Changed in mir: | |
status: | Fix Committed → Confirmed |
assignee: | Alan Griffiths (alan-griffiths) → nobody |
milestone: | 0.21.0 → none |
Also, *none* of these ways are available to clients.
I think we should probably scrap (3), not use (2), and instead provide an actual client API for configuring the client logger.