Commit Graph
16 Commits
Author SHA1 Message Date
jdb 011780e6ab Define cached threshold behavior for isEnabled
Document and test explicit refresh boundaries for isEnabled guards, and
only read the shared root threshold when no namespace threshold applies.
Include the portable Nimble configuration loader.
2026-09-29 08:43:31 -05:00
jdb 14e71c72ca Preserve cached configuration when refresh fails
Build replacement appenders and thresholds before installing them and
advancing the local version. Release partial replacements and old caches
outside the configuration lock.  In order to make the `ensureFreshness`
version check as cheap as posible and only incur overhead when we
actually need to update the local cache, isolate the refresh logic in a
separate scope to prevent initialization and cleanup of temporary
variables when the version has not changed

Add regression coverage for repeated clone failures, cache preservation,
cleanup, and retry without another configuration change. Update
documentation to reflect the remaining freshness issue.
2026-09-29 08:10:12 -05:00
jdb d5e3b9c301 Drain background writers before process exit
Serialize writer submission and shutdown, enqueue explicit stop messages after accepted records, and finish the final file batch before joining. Keep drained process-wide channel storage until exit to avoid the Nim 2.2.10 Channel.close mutex teardown defect.

Cover empty records, multiple destinations, joined producers, and concurrent shutdown. Include writer lifecycle sanitizer tests in nimble test and update usage documentation.

Validation: all 32 unit tests, eight writer exit scenarios, and writer lifecycle ThreadSanitizer tests pass. The full suite retains the known configuration refresh, timestamp, and default allocator failures.
2026-09-28 15:00:18 -05:00
jdb b2d0e9dade Define explicit ownership for custom appenders and formatters
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.
2026-09-28 14:28:24 -05:00
jdb 851caef706 Clarify shared logging state and owning handle types 2026-09-22 07:25:38 -05:00
jdb 761bd66793 Separate shared service ownership from thread-local logging caches 2026-09-22 07:18:22 -05:00
jdb c1c8a3c072 Add failing ORC thread-safety regressions and run all suites with nimble test 2026-09-21 17:43:45 -05:00
jdb 3178c50936 Remove autoconfigured (didn't work as implemented). 2025-07-11 17:38:04 -05:00
jdb 1b598fb445 README typo/correction. 2025-07-11 09:27:08 -05:00
jdb a4464c7275 Add README examples for autoconfigured use-cases. 2025-07-07 21:09:38 -05:00
jdb 1884e07378 Make the README a little more concise. 2025-07-06 04:23:27 -05:00
jdb c4074007b5 Tweaks to README intro. 2025-07-06 04:12:23 -05:00
jdb 05f5c2548c Further edits to README, docs for appender implementations. 2025-07-06 03:25:01 -05:00
jdb 9861a93ee4 Add autoconfigured, multithreaded example to README. 2025-07-06 02:29:39 -05:00
jdb 4a8365ebef Update README for 2.0.0. 2025-07-06 02:17:25 -05:00
jdb 92c2dec54d Major refactor to better support multi-threading.
See README for details.
2025-01-05 06:25:35 -06:00