Filtrer les journaux par plage horaire
En plus de visualiser tous les journaux ou les plus récents, vous pouvez également filtrer les journaux des conteneurs selon une plage horaire spécifique. Cette fonctionnalité est utile lorsque vous enquêtez sur des événements survenus pendant une période particulière.
La commande docker logs
propose les options --since
et --until
pour filtrer les journaux en fonction du temps. Ces options acceptent différents formats de temps, notamment les horodatages RFC3339, les horodatages Unix ou des durées relatives (par exemple 10m
pour 10 minutes, 1h
pour 1 heure).
Essayons de filtrer les journaux. Tout d'abord, nous devons générer des journaux à différents moments. Pour cela, nous pouvons envoyer à nouveau des requêtes curl
au conteneur Nginx.
Ouvrez un nouvel onglet de terminal et exécutez plusieurs fois la commande curl
avec un court délai entre chaque requête.
curl http://localhost:80
sleep 5
curl http://localhost:80
sleep 5
curl http://localhost:80
Maintenant, visualisons les journaux du conteneur my-nginx
avec horodatages pour voir les moments de ces requêtes.
docker logs -t my-nginx
Observez les horodatages des entrées de journal générées par les commandes curl
.
Pour filtrer les journaux depuis un moment spécifique, utilisez l'option --since
. Par exemple, pour voir les journaux générés dans la dernière minute :
docker logs --since 1m my-nginx
Cette commande affichera toutes les entrées de journal du conteneur my-nginx
générées dans la dernière minute.
Vous pouvez aussi filtrer les journaux jusqu'à un moment spécifique avec l'option --until
. Par exemple, pour voir les journaux générés il y a plus d'une minute :
docker logs --until 1m my-nginx
Cette commande affichera toutes les entrées de journal du conteneur my-nginx
générées il y a plus d'une minute.
Vous pouvez combiner --since
et --until
pour visualiser les journaux dans une fenêtre temporelle précise. Par exemple, pour voir les journaux entre il y a 5 minutes et il y a 1 minute :
docker logs --since 5m --until 1m my-nginx
Notez que le résultat exact dépendra du moment où vous avez exécuté les commandes curl
et des commandes docker logs
.