bchavez / bchavez/RethinkDb.Driver

Use LibLog for Logging

Open
#130 6 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.