Filtrar logs por intervalo de tempo
Além de visualizar todos os logs ou os mais recentes, você também pode filtrar os logs do contêiner por um intervalo de tempo específico. Isso é útil quando você está investigando eventos que ocorreram durante um período específico.
O comando docker logs fornece as opções --since e --until para filtrar logs com base no tempo. Essas opções aceitam vários formatos de tempo, incluindo timestamps RFC3339, timestamps Unix ou tempos relativos (por exemplo, 10m para 10 minutos, 1h para 1 hora).
Vamos tentar filtrar logs. Primeiro, precisamos gerar alguns logs em horários diferentes. Podemos fazer isso enviando requisições curl para o contêiner Nginx novamente.
Abra uma nova aba do terminal e execute o comando curl algumas vezes com um pequeno atraso entre elas.
curl http://localhost:80
sleep 5
curl http://localhost:80
sleep 5
curl http://localhost:80
Agora, vamos visualizar os logs do contêiner my-nginx com timestamps para ver os horários dessas requisições.
docker logs -t my-nginx
Observe os timestamps das entradas de log geradas pelos comandos curl.
Para filtrar logs desde um horário específico, você pode usar a opção --since. Por exemplo, para visualizar logs gerados no último 1 minuto:
docker logs --since 1m my-nginx
Este comando mostrará todas as entradas de log do contêiner my-nginx que foram geradas no último minuto.
Você também pode filtrar logs até um horário específico usando a opção --until. Por exemplo, para visualizar logs gerados antes de 1 minuto atrás:
docker logs --until 1m my-nginx
Este comando mostrará todas as entradas de log do contêiner my-nginx que foram geradas há mais de um minuto.
Você pode combinar --since e --until para visualizar logs dentro de uma janela de tempo específica. Por exemplo, para visualizar logs entre 5 minutos atrás e 1 minuto atrás:
docker logs --since 5m --until 1m my-nginx
Lembre-se que a saída exata dependerá de quando você executou os comandos curl e quando você executou os comandos docker logs.