run - stop heroku app
heroku-cómo ver todos los registros (16)
Tengo una pequeña aplicación en heroku. Cada vez que quiero ver los registros, voy a la línea de comandos y hago
heroku logs
Eso solo me muestra unas 100 líneas. ¿No hay una manera de ver los registros completos de nuestra aplicación en heroku?
¡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 el tiempo. No se recomienda acceder a los archivos *.log
en el sistema de archivos en dicho entorno por una variedad de razones.
Primero, si su aplicación tiene más de un dinamómetro, entonces 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 tiene un significado efímero cada vez que se reinicia o mueve su dinamómetro (lo que ocurre aproximadamente una vez al día ) los archivos de registro se pierden. Por lo tanto, solo puede obtener, como máximo, la visualización de un día en los registros de ese único dinamómetro.
Finalmente, en la pila de Cedar ejecutando la heroku console
o incluso heroku run bash
no te conecta a un heroku run bash
actualmente en ejecución. Genera uno nuevo específicamente para el comando bash
. Esto se llama un proceso de una sola vez . Como tal, no encontrará los archivos de registro para sus otros diálogos que ejecutan los procesos http reales en el heroku run
para la heroku run
.
Logging y la visibilidad en general es un ciudadano de primera clase en Heroku y existen varias herramientas que abordan estos problemas. Primero, para ver un flujo de eventos de la aplicación en tiempo real en todos los dinámicos y todas las capas de la aplicación / pila, use el heroku logs -t
para hacer un heroku logs -t
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 prolongados, puede usar uno de los muchos complementos de registro que proporcionan retención de registros, alertas y activadores.
Por último, si desea almacenar los archivos de registro usted mismo, puede configurar su propio devcenter.heroku.com/articles/logging#syslog_drains para recibir el flujo de eventos de Heroku y postprocesarlos / analizarlos usted mismo.
Resumen: no use heroku console
o heroku run bash
para ver archivos de registro estáticos. Introduzca la secuencia de eventos de registro de Heroku para su aplicación utilizando los heroku logs
o un complemento de registro.
Mi solución es obtener un registro completo la primera vez que se inicia la aplicación, como:
heroku logs -n 1500 > log
a continuación, agregue fgrep -vf
para mantenerlo actualizado, como:
heroku logs -n 1500 > newlog ; fgrep -vf log newlog >> log
para el registro continuo, simplemente itérelo usando el reloj por cada x minutos (o segundos).
Para pila de cedro ver:
https://devcenter.heroku.com/articles/oneoff-admin-ps
usted necesita ejecutar:
heroku corre bash ...
Para ver el registro detallado, debe colocar dos líneas en el archivo production.rb
:
config.logger = Logger.new(STDOUT)
config.logger.level = Logger::DEBUG
y luego corriendo
heroku logs -t
Usted puede ver los registros detallados.
Podría valer la pena agregar algo como el plan gratuito de Papertrail a su aplicación. Cero configuración, y obtiene 7 días de datos de registro de hasta 10 MB / día, y puede buscar hasta 2 días de registros.
Prefiero hacerlo de esta manera
heroku logs --tail | tee -a herokuLogs
Puede dejar la secuencia de comandos ejecutándose en segundo plano y simplemente puede filtrar los registros del archivo de texto de la forma que desee en cualquier momento.
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 utilizando:
heroku logs --source app --tail --app=myapp
Si los registros te dicen algo como esto:
npm ERR! Un registro completo de esta ejecución se puede encontrar 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
Siga en el Logging
Para ver sus registros tenemos:
- El comando logs recupera 100 líneas de log por defecto.
registros de heroku
- muestra un máximo de 1500 líneas, --num (o -n) opción.
registros de heroku -n 200
- Mostrar registros en tiempo real
registros de heroku - cola
- Si tienes muchas aplicaciones en heroku
heroku logs --app your_app_name
Sugiero usar un complemento, 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 puedes actualizarlo si lo deseas)
Logentries le permite guardar hasta 5 GB de volumen de registro por mes. Esa información se puede buscar por 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!
También vea flujos / filtros individuales.
Ej. Cola solo sus registros de aplicación
heroku logs --source app -t
O ver solo los registros del enrutador
heroku logs --ps router
O encadenarlos juntos
heroku logs --source app --ps worker
Tan bueno..
para archivos WAR:
No usé github, en su lugar, cargué directamente un archivo WAR (que encontré mucho más fácil y rápido).
Así que lo siguiente me ayudó:
heroku logs --app appname
Espero que ayude a alguien.
--tail
opción -t
o --tail
y debe definir el nombre de su aplicación heroku.
heroku logs -t --app app_name
heroku logs -t
nos muestra los registros en vivo.
Actualización (gracias a dawmail333):
heroku logs -n 1500
o, para seguir los registros en vivo
heroku logs -t
Heroku documentación de registro
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 }