分析JSON服务器日志

PHP Medium json

任务 «分析JSON服务器日志»

编写一个PHP程序,从标准输入读取包含服务器日志对象数组的JSON字符串。每个对象包含以下字段:'timestamp'(ISO 8601格式的字符串)、'level'(字符串:'info'、'warning'、'error')、'message'(字符串)。需要处理日志并输出一个JSON数组,其中包含所有级别为'error'且发生在2023-06-15T00:00:00Z之后的日志对象。对于每个这样的日志,需要添加一个'processed'字段,其值为当前日期和时间(ISO 8601格式,例如'2023-06-20T12:34:56Z')。其余字段保持不变。将结果以JSON字符串形式输出,并按'timestamp'字段升序排序。

输入格式

一行——日志对象的JSON数组。

输出格式

一行——经过过滤和补充后的JSON数组对象。

示例

示例 1

输入
[{"timestamp":"2023-06-14T10:00:00Z","level":"error","message":"Disk full"},{"timestamp":"2023-06-16T08:30:00Z","level":"error","message":"Connection timeout"},{"timestamp":"2023-06-15T12:00:00Z","level":"warning","message":"High memory usage"}]
输出
[{"timestamp": "2023-06-16T08:30:00Z", "level": "error", "message": "Connection timeout", "processed": "2026-05-17T10:07:20Z"}]

示例 2

输入
1,2,3
输出
[]

示例 3

输入
[{"timestamp":"2023-06-15T00:00:01Z","level":"error","message":"Oops"},{"timestamp":"2023-06-14T23:59:59Z","level":"error","message":"Late"}]
输出
[{"timestamp": "2023-06-15T00:00:01Z", "level": "error", "message": "Oops", "processed": "2026-05-17T10:07:20Z"}]

示例 4

输入
4,5,6
输出
[]
main.php