Eu tenho um pequeno aplicativo no heroku. Sempre que quero ver os logs, vou para a linha de comando e faço
heroku logs
Isso só me mostra cerca de 100 linhas. Não existe uma maneira de ver logs completos para nossa aplicação no heroku?
Atualização (graças a dawmail333):
heroku logs -n 1500
ou, para seguir os logs ao vivo
heroku logs -t
Se você precisar de mais do que alguns milhares de linhas, use os Syslog Drains da heroku
Como alternativa (método antigo):
$ heroku run rails c
File.open('log/production.log', 'r').each_line { |line| puts line }
heroku logs -n 1500
, é o melhor método disponível no Cedar. Se você precisar de mais linhas do que isso, você precisa de um dreno syslog: devcenter.heroku.com/articles/logging#syslog_drainsheroku run rails c
. Atualizada!heroku run cat log/production.log
?O registro melhorou bastante no heroku!
Melhor!
referências: http://devcenter.heroku.com/articles/logging
ATUALIZADA
Estes não são mais complementos, mas parte da funcionalidade padrão :)
fonte
Heroku trata os logs como fluxos de eventos ordenados pelo tempo. O acesso a
*.log
arquivos no sistema de arquivos não é recomendado nesse ambiente por vários motivos.Primeiro, se seu aplicativo tiver mais de um dinamômetro, cada arquivo de log representará apenas uma exibição parcial dos eventos do seu aplicativo. Você precisaria agregar manualmente todos os arquivos para obter a visualização completa.
Segundo, o sistema de arquivos no Heroku tem um significado efêmero sempre que seu dinamômetro é reiniciado ou movido (o que acontece uma vez por dia ), os arquivos de log são perdidos. Portanto, você obtém apenas a visão de um dia nos logs desse dinamômetro único.
Finalmente, na pilha Cedar em execução
heroku console
ou mesmoheroku run bash
não o conecta a um dinamômetro atualmente em execução. Ele gera um novo especificamente para obash
comando. Isso é chamado de processo único . Como tal, você não encontrará os arquivos de log para seus outros dynos que executam os processos http reais no geradoheroku run
.O registro e a visibilidade em geral são cidadãos de primeira classe no Heroku e existem várias ferramentas que abordam esses problemas. Primeiro, para ver um fluxo em tempo real de eventos do aplicativo em todos os dynos e em todas as camadas do aplicativo / pilha, use o
heroku logs -t
comando para direcionar a saída para o seu terminal.Isso funciona muito bem para observar o comportamento do seu aplicativo no momento. Se você deseja armazenar os logs por períodos mais longos, pode usar um dos muitos complementos de log que fornecem retenção, alerta e gatilhos de log.
Por fim, se você deseja armazenar os arquivos de log, pode configurar seu próprio dreno de syslog para receber o fluxo de eventos do Heroku e pós-processar / analisar a si mesmo.
Resumo: não use
heroku console
ouheroku run bash
para exibir arquivos de log estáticos. Acesse o fluxo de eventos de log do Heroku para seu aplicativo usandoheroku logs
ou um complemento de log.fonte
Veja também fluxos / filtros individuais.
Por exemplo, siga apenas os logs do seu aplicativo
Ou veja apenas os logs do roteador
Ou encadeá-los juntos
Tão bom..
fonte
heroku logs --ps web.1
(com 1 dyno)Bem, as respostas acima são muito úteis e ajudarão você a visualizar na linha de comando. Considerando que, se você quiser fazer a partir da GUI, faça login na sua conta heroku, selecione seu aplicativo e, finalmente, clique em exibir logs
fonte
Siga no registro Heroku
Para visualizar seus registros, temos:
--num
(ou-n
) opção.fonte
heroku logs -t
mostra os logs ao vivo.fonte
Você pode acessar seus arquivos de log usando a interface de linha de comando do Heroku ( uso da CLI ).
Se a CLI do Heroku estiver instalada e você souber o nome do seu aplicativo (como
https://myapp.herokuapp.com/
), poderá executar o seguinte comando:Você também pode acessar os logs em um fluxo em tempo real usando:
Se os logs disserem algo assim:
Depois, você também pode acessá-los usando o terminal bash via Heroku CLI:
fonte
/usr/bin/less: cannot execute binary files
Pode valer a pena adicionar algo como o plano gratuito do Papertrail ao seu aplicativo. Configuração zero, e você obtém 7 dias de dados de log de até 10 MB / dia e pode pesquisar novamente em 2 dias de logs.
fonte
para arquivos WAR:
Eu não usei o github, mas enviei diretamente um arquivo WAR (que achei muito mais fácil e rápido).
Então, o seguinte me ajudou:
Espero que ajude alguém.
fonte
Você precisa usar
-t
ou--tail
option e definir o nome do aplicativo heroku.fonte
Minha solução é obter um log completo na primeira vez que o aplicativo é iniciado, como:
adicione
fgrep -vf
para mantê-lo atualizado, como:para registro contínuo, apenas itere-o usando o relógio a cada x minutos (ou segundos).
fonte
Para ver o log detalhado, você precisa colocar duas linhas no
production.rb
arquivo:e então executando
você pode ver os logs detalhados.
fonte
Eu prefiro fazer assim
Você pode deixar o script em execução em segundo plano e pode simplesmente filtrar os logs do arquivo de texto da maneira que desejar a qualquer momento.
fonte
Você precisa ter alguns drenos de logs implementados e deve drená-los para ver todos os logs (gerenciar também os históricos):
E, em seguida, faça login no seu servidor splunk e pesquise qualquer número de logs. Estou usando o Splunk e isso está funcionando perfeitamente para mim.
Segunda opção - Você pode comprar add-on no seu aplicativo, conforme indicado abaixo: (eu não usei essas opções, no entanto, essas são as disponíveis).
https://github.com/goodeggs/heroku-log-normalizer
Não está tendo o arquivo Leiame.md, mas algumas explicações são fornecidas em https://github.com/goodeggs/bites/issues/20
Por último
E você sempre pode usar o comando abaixo, conforme mencionado por outros usuários:
O comando a seguir seguirá os logs de geração no heroku
O comando a seguir mostrará o número de 1000 linhas de logs do heroku
fonte
Sugiro usar um complemento, eu uso o Logentries. Para usá-lo, execute na sua linha de comando:
heroku addons:create logentries:le_tryit
(esse comando cria o complemento para uma conta gratuita, mas claramente você pode atualizar, se quiser)
O Logentries permite economizar até 5 GB de volume de log por mês. Essas informações são pesquisáveis por sua pesquisa de comandos nos últimos 7 dias e possuem alertas em tempo real.
Portanto, para responder sua pergunta, usando este complemento, você garante que seus logs não sejam mais perdidos quando você atingir as 1500 linhas que o Heroku salva por padrão. Espero que isto ajude! Tenha um ótimo dia!
fonte
heroku logs -t
mostra os logs ao vivo.heroku logs -n 1500
para número específico de logsMas ainda assim eu recomendaria usar o complemento de trilha de papel que tenha certos benefícios e tenha um plano básico gratuito.
fonte
Você pode usar
heroku logs -n 1500
Mas essa não é uma abordagem recomendada (em outras palavras, não mostra a imagem real)
Eu sugiro que você conecte alguma ferramenta de log. (sumoLogic, paper trail n all) como um complemento
Todos eles têm uma versão gratuita (com poucas limitações, embora o suficiente para um aplicativo pequeno ou env dev, que fornecerá uma boa visão e uma ferramenta para analisar logs)
fonte
Para pilha de cedros, consulte:
https://devcenter.heroku.com/articles/oneoff-admin-ps
você precisa executar:
heroku run bash ...
fonte
heroku run bash
aparece um novo dinamômetro para hospedar obash
comando. O sistema de arquivos desse dinamômetro não conterá nenhum arquivo de log dos dynos da web 'ativos', portanto essa abordagem não funcionará.