PM-25525 Logging related changes to fix system service provider dependency injection #16806
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.





🎟️ Tracking
https://bitwarden.atlassian.net/browse/PM-25525?atlOrigin=eyJpIjoiOTZlZWM3ODQyNjEwNDUzMzlmZTE5MTcxMGQ4ZmUwOTMiLCJwIjoiaiJ9
📔 Objective
The system service provider aggregates several services into a single injectable type. This type isn’t compatible with Angular injection, has objects like the extension registry that aren’t properly configurable, and introduces multiple instances of itself.
Revise the system service provider to fix these issues.
Move the LogProvider and SemanticLogger to @bitwarden/logging
Preserve the observable in BitwardenClient
Write a facade over ConfigService and PlatformUtilsService that consolidates environmental awareness.
Consider introducing a “capabilities” abstraction for this.
The extension system provides an example of how the APIs may evolve.
The algorithm metadata provides an example of how capabilities can be surfaced.
Replace the SystemServiceProvider type with something that better composes with DI.
Try and move all of libs/common/src/tools/log into @bitwarden/logging
📝 Important Notes
This PR is intended to simplify the process of reviewing a larger effort by extracting files that involved only logging changes into a dedicated PR.
Once the changes in this PR are completed, the original PR linked above will be used to review broader changes related to upgrading
SystemServiceProviderto a new service focused on environmental awareness that works with Angular dependency injection.⏰ Reminders before review
🦮 Reviewer guidelines
:+1:) or similar for great changes:memo:) or ℹ️ (:information_source:) for notes or general info:question:) for questions:thinking:) or 💭 (:thought_balloon:) for more open inquiry that's not quite a confirmed issue and could potentially benefit from discussion:art:) for suggestions / improvements:x:) or:warning:) for more significant problems or concerns needing attention:seedling:) or ♻️ (:recycle:) for future improvements or indications of technical debt:pick:) for minor or nitpick changes