Sobes.tech
Junior

Como ver os logs num container em execução?

sobes.tech IA

Resposta da IA

Os logs do contêiner podem ser visualizados de várias maneiras:

  • docker logs: Método padrão para visualizar a saída padrão (stdout) e o erro padrão (stderr) do contêiner.

    // Mostrar todos os logs do contêiner
    docker logs <id_ou_nome_do_contêiner>
    
    // Mostrar logs dos últimos 5 minutos
    docker logs --since 5m <id_ou_nome_do_contêiner>
    
    // Acompanhar os logs em tempo real
    docker logs -f <id_ou_nome_do_contêiner>
    
  • docker exec com redirecionamento de logs ou leitura de arquivos de logs: Se a aplicação escreve logs em arquivos dentro do contêiner, pode-se executar um comando dentro do contêiner para lê-los.

    // Executar o comando cat para ler um arquivo de logs dentro do contêiner
    docker exec <id_ou_nome_do_contêiner> cat /caminho/para/seu/logfile.log
    
    // Executar o comando tail -f para acompanhar um arquivo de logs dentro do contêiner
    docker exec <id_ou_nome_do_contêiner> tail -f /caminho/para/seu/logfile.log
    
  • Sistemas de logging centralizado: Em ambientes de produção, os logs frequentemente são coletados e agregados por sistemas como Elasticsearch, Splunk, Loki ou Graylog. O Docker pode ser configurado para enviar logs diretamente para esses sistemas através de drivers de log específicos.

    // Exemplo de configuração do driver de log no docker-compose
    services:
      seu_serviço:
        image: sua_imagem
        logging:
          driver: json-file # ou syslog, journald, etc.
          options:
            max-size: "10m"
            max-file: "3"
      logging:
        image: elk/elasticsearch # ou outra_imagem_do_sistema_de_logging
    

A escolha do método depende de onde a aplicação dentro do contêiner escreve seus logs e da arquitetura geral do sistema de monitoramento e logging.