Tengo una pequeña aplicación en heroku. Cada vez que quiero ver los registros voy a la línea de comando y hago
heroku logs
Eso solo me muestra unas 100 líneas. ¿No hay una manera de ver registros completos para nuestra aplicación en heroku?
Actualización (gracias a dawmail333):
heroku logs -n 1500
o, para seguir los registros en vivo
heroku logs -t
Documentación de registro de Heroku
Si necesita más de unos pocos miles de líneas, puede usar los drenajes Syslog de heroku
Alternativamente (método antiguo):
$ heroku run rails c
File.open('log/production.log', 'r').each_line { |line| puts line }
heroku logs -n 1500
, es el mejor método disponible en Cedar. Si necesita más líneas que eso, necesita un drenaje de syslog: devcenter.heroku.com/articles/logging#syslog_drainsheroku run rails c
. ¡Actualizado!heroku run cat log/production.log
?¡El registro ha mejorado mucho en heroku!
¡Mejor!
referencias: http://devcenter.heroku.com/articles/logging
ACTUALIZADO
Estos ya no son complementos, sino parte de la funcionalidad predeterminada :)
fuente
Heroku trata los registros como flujos de eventos ordenados por tiempo.
*.log
No se recomienda acceder a los archivos en el sistema de archivos en dicho entorno por una variedad de razones.Primero, si su aplicación tiene más de un banco de datos, cada archivo de registro solo representa una vista parcial de los eventos de su aplicación. Tendría que agregar manualmente todos los archivos para obtener la vista completa.
En segundo lugar, el sistema de archivos en Heroku es efímero, lo que significa que cada vez que se reinicia o mueve su dinamómetro (lo que ocurre aproximadamente una vez al día ) se pierden los archivos de registro. Por lo tanto, solo tiene a lo sumo un día de vista en los registros de ese único dinamómetro.
Finalmente, en la pila Cedar en ejecución
heroku console
o inclusoheroku run bash
no te conecta a un banco de pruebas actualmente en ejecución. Genera uno nuevo específicamente para elbash
comando. Esto se llama un proceso único . Como tal, no encontrará los archivos de registro para sus otros dynos que ejecutan los procesos http reales en los que se generóheroku run
.El registro y la visibilidad en general es un ciudadano de primera clase en Heroku y hay varias herramientas que abordan estos problemas. Primero, para ver una secuencia de eventos de aplicaciones en tiempo real en todos los dynos y todas las capas de la aplicación / pila, use el
heroku logs -t
comando para ajustar la salida a su terminal.Esto funciona muy bien para observar el comportamiento de su aplicación en este momento. Si desea almacenar los registros durante períodos de tiempo más largos, puede usar uno de los muchos complementos de registro que proporcionan retención de registros, alertas y disparadores.
Por último, si desea almacenar los archivos de registro usted mismo, puede configurar su propio drenaje de syslog para recibir la secuencia de eventos de Heroku y procesarlo / analizarlo usted mismo.
Resumen: no use
heroku console
oheroku run bash
para ver archivos de registro estáticos. Canalice en la secuencia de eventos de registro de Heroku para su aplicación usandoheroku logs
o un complemento de registro.fuente
Ver también flujos / filtros individuales.
Por ejemplo, siga solo los registros de su aplicación
O vea solo los registros del enrutador
O encadenarlos juntos
Tan bueno..
fuente
heroku logs --ps web.1
(con 1 dinamómetro)Bueno, las respuestas anteriores son muy útiles, te ayudarán a ver desde la línea de comandos. Mientras que si desea hacerlo desde su GUI, debe iniciar sesión en su cuenta de heroku y luego seleccionar su aplicación y finalmente hacer clic en ver registros
fuente
Siga en el registro de Heroku
Para ver sus registros tenemos:
--num
(u-n
) opción.fuente
heroku logs -t
nos muestra los registros en vivo.fuente
Puede acceder a sus archivos de registro utilizando la interfaz de línea de comandos de Heroku ( uso de CLI ).
Si la CLI de Heroku está instalada y conoce el nombre de su aplicación (como
https://myapp.herokuapp.com/
), puede ejecutar el siguiente comando:También puede acceder a los registros en una secuencia en tiempo real usando:
Si los registros te dicen algo como esto:
Luego también puede acceder a ellos utilizando el terminal bash a través de Heroku CLI:
fuente
/usr/bin/less: cannot execute binary files
Podría valer la pena agregar algo como el plan Papertrail gratuito a su aplicación. Configuración cero, y obtiene 7 días de datos de registro de hasta 10 MB / día, y puede buscar a través de 2 días de registros.
fuente
para archivos WAR:
No utilicé github, en su lugar cargué directamente un archivo WAR (que me pareció mucho más fácil y rápido).
Entonces lo siguiente me ayudó:
Espero que ayude a alguien.
fuente
Necesita usar
-t
u--tail
opción y debe definir el nombre de su aplicación heroku.fuente
Mi solución es obtener un registro completo la primera vez que se inicia la aplicación, como:
luego agregue
fgrep -vf
para mantenerlo actualizado, como:para el registro continuo, simplemente repítelo usando watch por cada x minutos (o segundos).
fuente
Para ver el registro detallado, debe colocar dos líneas en el
production.rb
archivo:y luego corriendo
Puedes ver los registros detallados.
fuente
Prefiero hacerlo de esta manera
Puede dejar el script ejecutándose en segundo plano y simplemente puede filtrar los registros del archivo de texto de la forma que desee en cualquier momento.
fuente
Debe tener algunos registros de drenaje implementados y debe estar drenando sus registros allí, para ver todos los registros (también administrar registros históricos):
Y luego inicie sesión en su servidor splunk y busque cualquier número de registros. Estoy usando Splunk y esto funciona perfectamente bien para mí.
Segunda opción : puede comprar un complemento para su aplicación, como se indica a continuación: (No he usado estas opciones, sin embargo, estas son las disponibles).
https://github.com/goodeggs/heroku-log-normalizer
No tiene Readme.md, pero se da alguna explicación en https://github.com/goodeggs/bites/issues/20
Finalmente
Y siempre puede usar el siguiente comando como ya lo mencionaron otros usuarios:
El siguiente comando seguirá los registros de generación en heroku
El siguiente comando mostrará el número 1000 de líneas de registros de heroku
fuente
Sugiero usar un complemento, yo uso Logentries. Para usarlo, ejecute en su línea de comando:
heroku addons:create logentries:le_tryit
(ese comando crea el complemento para una cuenta gratuita pero claramente puede actualizar si lo desea)
Logentries le permite ahorrar hasta 5 GB de volumen de registro por mes. Se puede buscar esa información mediante su búsqueda de comandos en los últimos 7 días y tiene alertas en tiempo real.
Entonces, para responder a su pregunta, al usar este complemento, se asegura de que sus registros ya no se pierdan cuando llegue a las 1500 líneas que Heroku guarda por defecto. ¡Espero que esto ayude! ¡Que tengas un gran día!
fuente
heroku logs -t
nos muestra los registros en vivo.heroku logs -n 1500
para un número específico de registrosPero aun así, recomendaría usar el complemento de rastros de papel que tiene ciertos beneficios y tiene un plan básico gratuito.
fuente
Puedes usar
heroku logs -n 1500
Pero este no es un enfoque recomendado (en otras palabras, no muestra la imagen real)
Sugeriría que conecte alguna herramienta de registro. (sumoLogic, paper trail n all) como complemento
Todos tienen una versión gratuita (con pocas limitaciones, aunque suficiente para una pequeña aplicación o entorno de desarrollo, que proporcionará una buena visión y una herramienta para analizar los registros)
fuente
Para la pila de cedro ver:
https://devcenter.heroku.com/articles/oneoff-admin-ps
necesitas correr:
heroku corre bash ...
fuente
heroku run bash
gira un nuevo dinamómetro para alojar elbash
comando. El sistema de archivos en ese banco de datos no contendrá ningún archivo de registro del banco de datos web "activo", por lo que este enfoque no funcionará.