Add SharedLogState for synchronized value data and factories for
independently owned appender state and captured formatter closures.
Reject unsafe configuration state, update the test collector to value
snapshots, and document the breaking APIs in version 3.0.0.
Expand ORC ownership and sanitizer coverage and reject stale test
executables.
- Hide initLoggingNamespace. getLoggerForNamespace should be used
instead.
- setLevelForNamespace now calls getLoggerForNamespace to ensure the
namespace exists when a caller tries to set the logging level.
Previously it was possible to call setLevelForNamespace before the
namespace was initialized, meaning that the setting had no effect.
This is especially problematic for cases where a library is using
namespaced logging with the filter set to a high level by default.
The code using that library may want to enable debug logs, and is
likely to call setLevelForNamespace in initialization code that runs
prior to the library code which instantiates the namespace.