Saya punya aplikasi kecil di heroku. Setiap kali saya ingin melihat log saya pergi ke baris perintah dan lakukan
heroku logs
Itu hanya menunjukkan kepada saya sekitar 100 baris. Apakah tidak ada cara untuk melihat log lengkap untuk aplikasi kita di heroku?
heroku logs -n 1500
, ini metode terbaik yang tersedia di Cedar. Jika Anda membutuhkan lebih banyak baris dari itu, Anda memerlukan saluran syslog: devcenter.heroku.com/articles/logging#syslog_drainsheroku run rails c
. Diperbarui!heroku run cat log/production.log
?Penebangan telah meningkat pesat di heroku!
Lebih baik!
referensi: http://devcenter.heroku.com/articles/logging
DIPERBARUI
Ini bukan lagi add-on, tetapi bagian dari fungsi default :)
sumber
Heroku memperlakukan log sebagai aliran peristiwa yang dipesan waktu. Mengakses
*.log
file pada sistem file tidak dianjurkan dalam lingkungan seperti itu karena berbagai alasan.Pertama, jika aplikasi Anda memiliki lebih dari satu dyno maka setiap file log hanya mewakili sebagian tampilan peristiwa aplikasi Anda. Anda harus mengumpulkan semua file secara manual untuk mendapatkan tampilan penuh.
Kedua, sistem file di Heroku adalah makna sementara kapan pun dino Anda dihidupkan ulang atau dipindahkan (yang terjadi sekitar sekali sehari ) file log hilang. Jadi, Anda hanya dapat melihat paling banyak satu hari ke dalam log dino tunggal itu.
Akhirnya, pada Cedar stack yang berjalan
heroku console
atau bahkanheroku run bash
tidak menghubungkan Anda ke dyno yang sedang berjalan. Ini memunculkan yang baru khusus untukbash
perintah. Ini disebut proses satu kali . Dengan demikian, Anda tidak akan menemukan file log untuk dino Anda yang lain yang menjalankan proses http aktual pada yang ditelurkanheroku run
.Penebangan , dan visibilitas secara umum, adalah warga negara kelas satu di Heroku dan ada beberapa alat yang menangani masalah ini. Pertama, untuk melihat aliran waktu-nyata dari peristiwa aplikasi di semua dino dan semua lapisan aplikasi / tumpukan gunakan
heroku logs -t
perintah untuk mengikuti keluaran ke terminal Anda.Ini berfungsi baik untuk mengamati perilaku aplikasi Anda sekarang. Jika Anda ingin menyimpan log untuk periode waktu yang lebih lama, Anda dapat menggunakan salah satu dari banyak add-on logging yang menyediakan retensi, peringatan, dan pemicu log.
Terakhir, jika Anda ingin menyimpan file log sendiri, Anda dapat mengatur drain syslog Anda sendiri untuk menerima aliran acara dari Heroku dan pasca-proses / analisis sendiri.
Ringkasan: Jangan gunakan
heroku console
atauheroku run bash
untuk melihat file log statis. Pipa ke aliran peristiwa log Heroku untuk aplikasi Anda menggunakanheroku logs
atau add-on logging.sumber
Lihat juga aliran / filter individual.
Misalnya ekor hanya log aplikasi Anda
Atau hanya melihat log router
Atau rantai mereka bersama
Sangat baik..
sumber
heroku logs --ps web.1
(dengan 1 dyno)Yah jawaban di atas sangat membantu itu akan membantu Anda untuk melihat dari baris perintah. Sedangkan jika Anda ingin melakukannya dari GUI Anda maka Anda harus masuk ke akun heroku Anda dan kemudian pilih aplikasi Anda dan akhirnya klik pada log tampilan
sumber
Ikuti di Heroku logging
Untuk melihat log Anda, kami memiliki:
--num
(atau-n
) opsi.sumber
heroku logs -t
menunjukkan kepada kami log langsung.sumber
Anda dapat mengakses file log menggunakan Antarmuka Baris Perintah Heroku ( Penggunaan CLI ).
Jika Heroku's CLI diinstal dan Anda tahu nama aplikasi Anda (seperti
https://myapp.herokuapp.com/
), maka Anda dapat menjalankan perintah berikut:Anda juga dapat mengakses log dalam aliran waktu nyata menggunakan:
Jika log memberi tahu Anda sesuatu seperti ini:
Kemudian Anda juga dapat mengaksesnya menggunakan terminal bash melalui Heroku CLI:
sumber
/usr/bin/less: cannot execute binary files
Mungkin layak untuk menambahkan sesuatu seperti paket Papertrail gratis ke aplikasi Anda. Tanpa konfigurasi, dan Anda mendapatkan data logging selama 7 hari hingga 10MB / hari, dan dapat mencari kembali melalui 2 hari log.
sumber
untuk file WAR:
Saya tidak menggunakan github, melainkan saya mengunggah langsung, file PERANG (yang saya temukan jauh lebih mudah dan lebih cepat).
Jadi yang berikut membantu saya:
Semoga ini bisa membantu seseorang.
sumber
Anda perlu menggunakan
-t
atau--tail
opsi dan Anda perlu menentukan nama aplikasi heroku Anda.sumber
Solusi saya adalah mendapatkan log lengkap saat pertama kali aplikasi dimulai, seperti:
lalu tambahkan
fgrep -vf
agar tetap terbarui, seperti:untuk pencatatan terus menerus, cukup lakukan iterasi menggunakan arloji untuk setiap x menit (atau detik).
sumber
Untuk melihat log terperinci Anda harus meletakkan dua baris dalam
production.rb
file:dan kemudian dengan berlari
Anda dapat melihat log rinci.
sumber
Saya lebih suka melakukannya dengan cara ini
Anda dapat membiarkan skrip tetap berjalan di latar belakang dan Anda cukup menyaring log dari file teks seperti yang Anda inginkan kapan saja.
sumber
Anda perlu menerapkan pengeringan log dan harus menguras log Anda di sana, untuk melihat semua log (kelola log historis juga):
Dan kemudian login ke server splunk Anda dan cari sejumlah log. Saya menggunakan Splunk dan ini berfungsi dengan baik untuk saya.
Opsi kedua - Anda dapat membeli add on ke Aplikasi Anda, seperti yang diberikan di bawah ini: (Saya belum menggunakan opsi ini, namun ini adalah yang tersedia).
https://github.com/goodeggs/heroku-log-normalizer
Ini tidak memiliki Readme.md, tetapi beberapa penjelasan diberikan di https://github.com/goodeggs/bites/issues/20
akhirnya
Dan Anda selalu dapat menggunakan perintah di bawah ini sebagaimana disebutkan oleh pengguna lain:
Perintah berikut akan mengekor log penghasil pada heroku
Perintah berikut ini akan menunjukkan jumlah 1000 baris log dari heroku
sumber
Saya sarankan menggunakan addon, saya menggunakan Logentries. Untuk menggunakannya, jalankan di baris perintah Anda:
heroku addons:create logentries:le_tryit
(perintah itu membuat addon untuk akun gratis tetapi jelas Anda bisa memutakhirkan jika mau)
Logentries memungkinkan Anda menghemat hingga 5GB volume log per bulan. Info itu dapat dicari dengan pencarian perintah mereka dalam 7 hari terakhir dan memiliki peringatan waktu nyata.
Jadi untuk menjawab pertanyaan Anda, dengan menggunakan addon ini Anda memastikan bahwa log Anda tidak hilang lagi ketika Anda mencapai 1500 baris yang disimpan Heroku secara default. Semoga ini membantu! Semoga hari mu menyenangkan!
sumber
heroku logs -t
menunjukkan kepada kami log langsung.heroku logs -n 1500
untuk jumlah log tertentuTapi tetap saya akan merekomendasikan untuk menggunakan add-on jejak kertas yang memiliki manfaat tertentu dan memiliki rencana dasar gratis.
sumber
Kamu bisa menggunakan
heroku logs -n 1500
Tapi ini bukan pendekatan yang disarankan (dengan kata lain tidak menunjukkan gambaran sebenarnya)
Saya sarankan Anda pasang beberapa alat logging. (sumoLogic, jejak kertas n semua) sebagai add-on
Mereka semua memiliki versi gratis (dengan beberapa batasan, meskipun cukup untuk aplikasi kecil atau pengembang, yang akan memberikan wawasan dan alat yang baik untuk menganalisis log)
sumber
Untuk tumpukan cedar, lihat:
https://devcenter.heroku.com/articles/oneoff-admin-ps
Anda perlu menjalankan:
heroku menjalankan bash ...
sumber
heroku run bash
berputar sebuah dyno baru untuk menjadi tuan rumahbash
perintah. Sistem file pada dyno itu tidak akan berisi file log apa pun dari dinamika web 'aktif' sehingga pendekatan ini tidak akan berfungsi.