WL#13786: Add new timestamp for JSON error log
Affects: Server-8.0
—
Status: Complete
We have been requested to include a timestamp written in the format: "ts": <epoch millisecond timestamp> This worklog adds a timestamp to the JSON error logger as a new field The JSON will then look like: { "prio" : 0, "err_code" : 10116, "source_line" : 4340, "source_file" : "mysqld.cc", "function" : "init_common_variables", "msg" : "D:\\mysql\\mysqld.exe (mysqld 8.0.20) starting as process 11876", "time" : "2020-01-08T14:51:29.008063Z", "ts" : 1543877509563, <== New field "err_symbol" : "ER_STARTING_AS", "SQL_state" : "HY000", "subsystem" : "Server", "buffered" : 1556290289008063, "label" : "System", } The new "ts" timestamp is not printed from any other logsink.
FR1: When JSON component is loaded and a message is written to the log, it must include the "ts" category. FR2: When the "ts" is printed to the JSON error log, the value must be in the format milliseconds since epoch. FR3: When the "ts" is printed to the JSON error log, the value must be an integer. FR4: The new "ts" category must not be printed to the regular error log-sink.
Since we add a field to the JSON log entry, we do not expect any compatibility issues.
We also think that having two representations of the timestamp makes sense, because the "time" timestamp has higher precision (microsec), and is more human readable.
Copyright (c) 2000, 2024, Oracle Corporation and/or its affiliates. All rights reserved.