Analyse des logs JSON du serveur

PHP Medium json

Tâche «Analyse des logs JSON du serveur»

Écrivez un programme en PHP qui lit depuis l'entrée standard une chaîne JSON contenant un tableau d'objets de logs serveur. Chaque objet possède les champs : 'timestamp' (chaîne au format ISO 8601), 'level' (chaîne : 'info', 'warning', 'error'), 'message' (chaîne). Il faut traiter les logs et afficher un tableau JSON des objets qui sont de type 'error' et qui sont survenus après 2023-06-15T00:00:00Z. Pour chaque log de ce type, il faut ajouter le champ 'processed' avec la date et l'heure actuelles au format ISO 8601 (par exemple, '2023-06-20T12:34:56Z'). Les autres champs doivent être conservés sans modification. Afficher le résultat sous forme de chaîne JSON, triée par le champ 'timestamp' dans l'ordre croissant.

Format d\ entrée

Une ligne — un tableau JSON d'objets logs.

Format de sortie

Une ligne — un tableau JSON d'objets filtrés et enrichis.

Exemples

Exemple 1

ENTRÉE
[{"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"}]
SORTIE
[{"timestamp": "2023-06-16T08:30:00Z", "level": "error", "message": "Connection timeout", "processed": "2026-05-17T10:07:20Z"}]

Exemple 2

ENTRÉE
1,2,3
SORTIE
[]

Exemple 3

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

Exemple 4

ENTRÉE
4,5,6
SORTIE
[]
main.php