Di mana selamanya menyimpan keluaran console.log?

105

Saya menginstal selamanya dan menggunakannya, merasa cukup lucu.

Tapi saya menyadari bahwa log ditempatkan di tempat lain. Apakah ada tip?

AGamePlayer
sumber

Jawaban:

135

Selamanya mengambil opsi baris perintah untuk keluaran:

-l  LOGFILE      Logs the forever output to LOGFILE
-o  OUTFILE      Logs stdout from child script to OUTFILE
-e  ERRFILE      Logs stderr from child script to ERRFILE

Sebagai contoh:

forever start -o out.log -e err.log my-script.js

Lihat di sini untuk info lebih lanjut

bryanmac.dll
sumber
7
apa jalur default jika saya tidak menentukan parameter apa pun tetapi hanya menggunakan suka forever myapp? Terima kasih!
AGamePlayer
3
Saya tidak melihatnya didokumentasikan - saya pikir itu berubah seiring waktu. Saya melihat log lama di folder ~ / .forever. Tapi saya memperbarui baru-baru ini dan setidaknya di mac saya jika saya tidak menentukan nama file log, itu menulis console.log ke terminal.
bryanmac
1
-a juga diperlukan sebagai opsi jika file sudah ada. selamanya -a -o out.log -e err.log my-script.js
swateek
2
Apa perbedaan antara LOGFILE dan OUTFILE? Bagi saya sepertinya mereka mengandung informasi yang persis sama!
Dominic
3
@Dominic LOGFILE menyertakan semua output termasuk output dari proses forever, OUTFILE hanya menyertakan stdout dari skrip anak Anda.
Joseph238
81

Selamanya, secara default, akan memasukkan log ke file acak di ~/.forever/folder.

Anda harus menjalankan forever listuntuk melihat proses yang sedang berjalan dan file log yang sesuai.

Keluaran sampel

>>> forever list
info:    Forever processes running
data:        uid  command       script forever pid  logfile                         uptime
data:    [0] 6n71 /usr/bin/node app.js 2233    2239 /home/vagrant/.forever/6n71.log 0:0:0:1.590

Namun, mungkin yang terbaik adalah menentukan -lseperti yang disebutkan oleh bryanmac.

Liyan Chang
sumber
1
Ini tidak selalu merupakan file acak. Jika Anda menentukan uid dengan flag --uid saat memulai maka itu akan membuat file log menggunakan uid yang ditentukan.
ddelrio1986
12

coba perintahnya

> forever logs

atau

> sudo forever logs

Anda akan mendapatkan lokasi file log

Moh .S
sumber
5

Ini berhasil untuk saya:

forever -a -o out.log -e err.log app.js
Zubair
sumber
5

Perlu melakukan normal forever start script.js untuk memulai, dan untuk memeriksa konsol / log kesalahan gunakan forever logs ini akan mencetak daftar semua log yang disimpan selamanya dan kemudian Anda dapat menggunakan tail -f /path/to/logs/file.logdan ini akan mencetak log langsung ke jendela Anda. tekan ctrl + z untuk menghentikan pencetakan log.

BanwariLal Bamalwa
sumber
3

Ini adalah pertanyaan lama tetapi saya menemukan masalah yang sama. Jika Anda ingin melihat output langsung, Anda dapat menjalankannya

forever logs

Ini akan menunjukkan jalur file log serta nomor skrip. Anda kemudian dapat menggunakan

forever logs 0 -f

0 harus diganti dengan nomor skrip yang ingin Anda lihat keluarannya.

khan
sumber
1

Bantuan adalah penyelamat terbaik Anda, ada tindakan log yang dapat Anda panggil untuk memeriksa log untuk semua proses yang berjalan.

forever --help

Menunjukkan perintah

logs                Lists log files for all forever processes
logs <script|index> Tails the logs for <script|index>

Contoh keluaran dari perintah di atas, untuk tiga proses yang sedang berjalan. keluaran console.log disimpan di log ini.

info:    Logs for running Forever processes
data:        script    logfile
data:    [0] server.js /root/.forever/79ao.log
data:    [1] server.js /root/.forever/ZcOk.log
data:    [2] server.js /root/.forever/L30K.log
bhupen.chn
sumber
1

Secara default selamanya menempatkan semua file yang dibutuhkan ke /$HOME/.forever. Jika Anda ingin mengubah lokasi itu, cukup setel variabel lingkungan FOREVER_ROOT saat Anda menjalankan selamanya:

FOREVER_ROOT=/etc/forever forever start index.js
Loup G
sumber
0

Anda perlu menambahkan penentu tujuan log sebelum nama file dijalankan. Begitu

selamanya -e /path/error.txt -o /path/output.txt mulai index.js

pengguna450821
sumber
0

Berdasarkan jawaban bryanmac. Saya hanya menyimpan semua log ke dalam satu file dan kemudian membacanya dengan tail. Sederhana, tetapi cara efektif untuk melakukan ini.

forever -o common.log -e common.log index.js && tail -f common.log

Niko9911
sumber