Respuestas:
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_drains
heroku run rails c
. ¡Actualizado!
heroku run cat log/production.log
?
¡El registro ha mejorado mucho en heroku!
$ heroku logs -n 500
¡Mejor!
$ heroku logs --tail
referencias: http://devcenter.heroku.com/articles/logging
ACTUALIZADO
Estos ya no son complementos, sino parte de la funcionalidad predeterminada :)
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 incluso heroku run bash
no te conecta a un banco de pruebas actualmente en ejecución. Genera uno nuevo específicamente para el bash
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.
$ heroku logs -t
2010-09-16T15:13:46-07:00 app[web.1]: Processing PostController#list (for 208.39.138.12 at 2010-09-16 15:13:46) [GET]
2010-09-16T15:13:46-07:00 app[web.1]: Rendering template within layouts/application
2010-09-16T15:13:46-07:00 heroku[router]: GET myapp.heroku.com/posts queue=0 wait=0ms service=1ms bytes=975
2010-09-16T15:13:47-07:00 app[worker.1]: 2 jobs processed at 16.6761 j/s, 0 failed ...
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
o heroku run bash
para ver archivos de registro estáticos. Canalice en la secuencia de eventos de registro de Heroku para su aplicación usando heroku logs
o un complemento de registro.
Ver también flujos / filtros individuales.
Por ejemplo, siga solo los registros de su aplicación
heroku logs --source app -t
O vea solo los registros del enrutador
heroku logs --ps router
O encadenarlos juntos
heroku logs --source app --ps worker
Tan bueno..
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
Siga en el registro de Heroku
Para ver sus registros tenemos:
heroku logs
--num
(u -n
) opción.
heroku logs -n 200
heroku logs --tail
heroku logs --app your_app_name
heroku logs -t
nos muestra los registros en vivo.
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:
heroku logs --tail --app=myapp
También puede acceder a los registros en una secuencia en tiempo real usando:
heroku logs --source app --tail --app=myapp
Si los registros te dicen algo como esto:
npm ERR! Puede encontrar un registro completo de esta ejecución en:
npm ERR! /app/.npm/_logs/2017-07-11T08_29_45_291Z-debug.log
Luego también puede acceder a ellos utilizando el terminal bash a través de Heroku CLI:
heroku run bash --app=myapp
less ./.npm/_logs/2017-07-11T08_29_45_291Z-debug.log
/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.
Necesita usar -t
u --tail
opción y debe definir el nombre de su aplicación heroku.
heroku logs -t --app app_name
Mi solución es obtener un registro completo la primera vez que se inicia la aplicación, como:
heroku logs -n 1500 > log
luego agregue fgrep -vf
para mantenerlo actualizado, como:
heroku logs -n 1500 > newlog ; fgrep -vf log newlog >> log
para el registro continuo, simplemente repítelo usando watch por cada x minutos (o segundos).
Prefiero hacerlo de esta manera
heroku logs --tail | tee -a herokuLogs
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.
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):
heroku drains:add syslog+tls://splunk-server.com:514 -a app_name
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).
También puede echar un vistazo a las siguientes opciones: si desea tener sus registros en formato JSON, ya que ayudará si está presionando sus registros a un sistema externo como Splunk / ELK, sería fácil (también en cuanto al rendimiento) buscar en JSON
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
heroku logs -t -a <app_name>
El siguiente comando mostrará el número 1000 de líneas de registros de heroku
heroku logs -n 1000 -a <app_name>
Tenga en cuenta que solo están disponibles 1500 últimas líneas de registros y el resto se elimina de heroku dyno.
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!
heroku logs -t
nos muestra los registros en vivo.
heroku logs -n 1500
para un número específico de registros
Pero aun así, recomendaría usar el complemento de rastros de papel que tiene ciertos beneficios y tiene un plan básico gratuito.
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)
Para la pila de cedro ver:
https://devcenter.heroku.com/articles/oneoff-admin-ps
necesitas correr:
heroku corre bash ...
heroku run bash
gira un nuevo dinamómetro para alojar el bash
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á.