Summary
A common complaint from our support team is that they don't know how to get debugging information out of drivers. Some drivers provide debug logging for this purpose, others do not. For drivers that do provide it, the log messages produced and the mechanisms for enabling debug logging are not consistent.
The goal of this project is to define a default set of debug logging messages that drivers should produce, and a standardized, trivial mechanism drivers should support for enabling, disabling, and configuring debug logging. This will provide TSEs, CEs and users an easy way to get debugging information out of our drivers. Each driver should additionally provide easily discoverable documentation on how to enable logging and what features are provided.
The key idea here is to provide consistency across drivers, making it easier to support all drivers and far easier to document how to debug specific issues.
Cast of Characters
Lead: Jeff Yemin
Author: Kaitlin Mahar
POCs: Rust - Kaitlin, C# - Boris
Product Owner: Rachelle Palmer
Documentation
- depends on
-
CSHARP-2829 Add logging to the driver
- Development Complete
-
PYTHON-2076 Provide importable APM event listeners
- Closed
- has to be done before
-
DRIVERS-2754 Log Successfully Retried Reads/Writes
- Backlog
- is depended on by
-
TOOLS-2636 Remove logging code in MTC in favor of logging by driver
- Waiting (Blocked)
-
PHPC-1425 Sanitize URI and certificate passwords in debug logs
- Blocked
-
CSHARP-3589 Unknown compressor does not log a warning
- Ready for Work
- is related to
-
GODRIVER-1242 Logging framework
- Development Complete
-
NODE-3503 Fix logger options and reintroduce logging lines
- Closed
-
DRIVERS-2527 Log timeoutMS at the operation level
- Backlog
- related to
-
RUBY-3182 Easier debugging with standardized logging
- Backlog
-
JAVA-4486 POC changes needed to implement unified test runner changes
- Closed
-
CSHARP-3663 Introduce simple logging instrumentation to be used in tests
- Closed
-
PHPC-1991 Enable logging <various level> in driver
- Closed
-
DRIVERS-2530 Do not perform server selection to determine sessions support
- Implementing
-
DRIVERS-2480 Mitigate negative effects of OCSP endpoint timeouts
- Backlog
-
DRIVERS-2676 Add additional logging messages to SDAM
- Backlog
- split to
-
CXX-2448 Easier debugging with standardized logging
- Backlog
-
NODE-3974 Easier debugging with standardized logging
- Backlog
-
PHPC-2061 Easier debugging with standardized logging
- Backlog
-
RUBY-2900 Easier debugging with standardized logging
- Backlog
-
GODRIVER-1712 Easier debugging with standardized logging
- Released
-
JAVA-4485 Easier debugging with standardized logging
- Ready for Work
-
CDRIVER-3775 Easier debugging with standardized logging
- In Progress
-
CSHARP-4044 Easier debugging with standardized logging
- Development Complete
-
MOTOR-888 Easier debugging with standardized logging
- Development Complete
-
PYTHON-3113 Easier debugging with standardized logging
- Development Complete
-
RUST-1176 Easier debugging with standardized logging
- Development Complete