bchavez / bchavez/RethinkDb.Driver
Use LibLog for Logging
- Dominant language
- C#
- Stars
- 381
- Forks
- 129
- PR merge metrics
- No merged PRs in 30d
Description
https://github.com/damianh/LibLog
Copy [LibLog.cs](https://github.com/damianh/LibLog/blob/master/src/LibLog/LibLog.cs) to the driver project. Basically, `LibLog.cs` contains some fancy reflection to find out what "logging" system is present in the execution environment.
**Pros**
Allows us to break some hard library dependencies that are only used for logging. IE: `Common.Logging` (full framework) and `Microsoft.Extensions.Logging.Abstractions` (.net core). Generally, any opportunity we get to break a dependency is good.
**Cons**
* It's a breaking change (hopefully not too bad).
* We might lose some degree of explicit configurability
(need to check if this is really true: read source of LibLog and see how this might impact explicit configuration scenarios).
IIRC, **Npgsql** is looking to move to `LibLog`.
This will be scheduled for the next major `2.4` driver release (with write hooks).
:zzz: :zzz: ***["You don't want to... Wake, push through"](https://www.youtube.com/watch?v=JO4YLBdJS9E)***
Contributor guide
Research direction
Start by reading the linked LibLog.cs source and then inspect the driver project's logging dependencies and configuration paths. Compare LibLog's reflection-based discovery with the current Common.Logging and Microsoft.Extensions.Logging.Abstractions usage, and consider the change complete when those dependencies are removed without losing explicit configuration scenarios.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- databases
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100