Logs

Os logs de execução vêm direto do contêiner do app; os logs de build ficam guardados com cada implantação. Nenhum dos dois é um arquivo histórico.

Logs de execução no painel

A aba Logs de um app transmite o que o contêiner escreve na saída padrão e na saída de erro. Ela abre com as últimas 100 linhas e acompanha as novas ao vivo; o visualizador mantém as últimas 1.000 linhas.

  • Pesquisar logs e Filtrar logs... restringem as linhas exibidas e mostram o número de ocorrências.
  • Pausar congela a exibição enquanto as linhas continuam chegando num buffer; Retomar as devolve à tela.
  • Alternar timestamps mostra ou oculta o horário que o Docker registrou para cada linha.
  • Copiar logs e Baixar logs pegam as linhas presentes no visualizador (um arquivo .txt); Limpar logs só esvazia o visualizador.
  • Num app composto por vários serviços, um seletor escolhe o contêiner a ler; o padrão é o Contêiner principal.

O fluxo é um WebSocket em /api/v1/apps/<id>/logs, com os parâmetros opcionais tail (no máximo 10.000 linhas), follow e service; uma requisição HTTP comum é recusada.

Pela CLI

sh0 logs <app> mostra as últimas 50 linhas e termina; --tail N muda a quantidade (saída real):

Terminal
$ sh0 logs my-api --tail 3
[*] Connecting to logs for my-api...
2026-10-02T03:07:16.015Z GET /
2026-10-02T03:07:16.070Z GET /health
2026-10-02T03:07:16.123Z GET /api/items

-f / --follow mantém o fluxo aberto e mostra as novas linhas conforme chegam, até você pressionar Ctrl+C.

Logs de build

Cada implantação guarda seu próprio log de build e implantação: abra-o pela aba Implantações do app. sh0 push e sh0 deploy --wait mostram o andamento da implantação que iniciam. Os logs de build ficam no banco de dados do sh0 com a implantação e não são removidos automaticamente.

O que é mantido, e por quanto tempo

O sh0 não guarda cópia dos logs de execução. Eles ficam nos arquivos de log do Docker para o contêiner, com os limites que o sh0 define ao criá-lo:

LogMantido
Saída de execução de um contêinerDriver json-file do Docker, rotação a 10 MB, 3 arquivos: no máximo cerca de 30 MB por contêiner, descartando primeiro as linhas mais antigas
Depois de uma reimplantaçãoO contêiner anterior é removido, e seus logs junto: o visualizador recomeça a partir do novo contêiner
Log de build e implantaçãoCom o registro da implantação, até o app ser excluído
Execuções de tarefas cronVeja Cron Jobs: o histórico de execuções é podado por tarefa
Terminal
$ docker inspect <container> --format '{{json .HostConfig.LogConfig}}'
{"Type":"json-file","Config":{"max-file":"3","max-size":"10m"}}
Note
O limite de 10 MB × 3 vale para contêineres criados pelo sh0 com essa configuração; um contêiner criado por uma versão anterior mantém os limites com que foi criado até ser recriado. Confira com docker inspect como acima (saída real).

Guardar logs por mais tempo

O sh0 v1.10.2 não tem exportação de logs, configuração de retenção nem envio de logs para um serviço externo. Se precisar de histórico além da janela de rotação ou entre implantações, faça o app enviar seus logs a um serviço externo (um SaaS de logs, um servidor syslog, seu próprio coletor) ou rode no host um coletor que leia os arquivos de log do Docker.