Create log timestamps in UTC to avoid local-time races
Use getTime().utc in both message constructors, document the timezone change, and cover concurrent construction and structured formatting. Restore ordinary logging calls in the parallel writer fixture. Validation: 32 unit tests and 29 regression tests pass. Timestamp sanitizer checks pass under UTC and non-UTC timezones. The full suite retains the known allocator reports in factory-state and allocator.
This commit is contained in:
1 parent
011780e6ab
commit
46245b3f1e
6 files changed
+48
-17
No files matched your search
@@ -12,9 +12,7 @@ proc formatOptionalLine(msg: LogMessage): string {.gcsafe.} =
|
||||
proc writeMessages(args: tuple[service: LogService, worker: int]) {.thread.} =
|
||||
let logger = args.service.threadLocalRef().getLogger("shutdown")
|
||||
for i in 0 ..< 2_500:
|
||||
# Keep the timestamp race out of this writer lifecycle test.
|
||||
logger.log(LogMessage(scope: "shutdown", level: lvlInfo,
|
||||
msg: "message " & $(args.worker * 2_500 + i)))
|
||||
logger.info("message " & $(args.worker * 2_500 + i))
|
||||
|
||||
proc main() =
|
||||
doAssert paramCount() == 2
|
||||
|
||||
Reference in new issue
Block a user