Logs nach Zeitraum filtern
Zusätzlich zur Anzeige aller Logs oder nur der neuesten Einträge können Sie Container-Logs auch nach einem bestimmten Zeitraum filtern. Dies ist besonders nützlich, wenn Sie Ereignisse untersuchen, die während eines bestimmten Zeitfensters aufgetreten sind.
Der docker logs-Befehl bietet die Optionen --since und --until zur Zeitfilterung von Logs. Diese Optionen akzeptieren verschiedene Zeitformate, darunter RFC3339-Zeitstempel, Unix-Zeitstempel oder relative Zeitangaben (z.B. 10m für 10 Minuten, 1h für 1 Stunde).
Lassen Sie uns die Log-Filterung testen. Zuerst müssen wir Logs zu verschiedenen Zeitpunkten generieren. Dies können wir durch erneute curl-Anfragen an den Nginx-Container erreichen.
Öffnen Sie einen neuen Terminal-Tab und führen Sie den curl-Befehl mehrmals mit kurzen Pausen dazwischen aus.
curl http://localhost:80
sleep 5
curl http://localhost:80
sleep 5
curl http://localhost:80
Nun zeigen wir die Logs des my-nginx-Containers mit Zeitstempeln an, um die Zeitpunkte dieser Anfragen zu sehen.
docker logs -t my-nginx
Beachten Sie die Zeitstempel der durch die curl-Befehle generierten Log-Einträge.
Um Logs ab einem bestimmten Zeitpunkt zu filtern, können Sie die Option --since verwenden. Beispielsweise, um Logs der letzten Minute anzuzeigen:
docker logs --since 1m my-nginx
Dieser Befehl zeigt alle Log-Einträge des my-nginx-Containers an, die in der letzten Minute generiert wurden.
Sie können Logs auch bis zu einem bestimmten Zeitpunkt filtern, indem Sie die Option --until verwenden. Beispielsweise, um Logs anzuzeigen, die vor mehr als einer Minute generiert wurden:
docker logs --until 1m my-nginx
Dieser Befehl zeigt alle Log-Einträge des my-nginx-Containers an, die vor mehr als einer Minute generiert wurden.
Sie können --since und --until kombinieren, um Logs innerhalb eines bestimmten Zeitfensters anzuzeigen. Beispielsweise, um Logs zwischen vor 5 Minuten und vor 1 Minute anzuzeigen:
docker logs --since 5m --until 1m my-nginx
Beachten Sie, dass die genaue Ausgabe davon abhängt, wann Sie die curl-Befehle ausgeführt haben und wann Sie die docker logs-Befehle ausführen.