Console.log çıktısını sonsuza kadar nerede saklar?


105

Sonsuza kadar kurdum ve kullanıyorum, oldukça komik buluyorum.

Ancak günlüklerin başka bir yere yerleştirildiğini fark ettim. Herhangi bir ipucu var mı?

Yanıtlar:


135

Forever çıktı için komut satırı seçeneklerini alır:

-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

Örneğin:

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

Daha fazla bilgi için buraya bakın


7
Herhangi bir parametre belirtmezsem ve sadece beğeni kullanırsam varsayılan yol forever myappnedir? Teşekkürler!
AGamePlayer

3
Belgelendiğini görmüyorum - zamanla değiştiğini düşünüyorum. ~ / .Forever klasöründe eski günlükleri görüyorum. Ama çok yakın zamanda güncelledim ve en azından mac'umda bir günlük dosyası adı belirtmezsem, console.log'u terminale yazar.
bryanmac

1
-a, dosyalar zaten mevcutsa bir seçenek olarak da gereklidir. sonsuza kadar -a -o out.log -e err.log my-script.js
swateek

2
LOGFILE ve OUTFILE arasındaki fark nedir? Benim için tamamen aynı bilgileri içeriyor gibi görünüyor!
Dominic

3
@Dominic LOGFILE , sonsuza kadar sürecin çıktıları dahil tüm çıktıları içerir, OUTFILE yalnızca alt betiğinizden stdout içerir.
Joseph238

81

Forever, varsayılan olarak, günlükleri rastgele bir dosyaya koyacaktır. ~/.forever/ klasördeki .

Koşmalısın forever list çalışan süreçleri ve bunlara karşılık gelen günlük dosyasını görmek için.

Örnek çıktı

>>> 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

Ancak, -lbryanmac tarafından belirtildiği gibi belirtmek muhtemelen en iyisidir.


1
Her zaman rastgele bir dosya değildir. Başlarken --uid bayrağına sahip bir uid belirttiyseniz, belirtilen uid kullanarak bir günlük dosyası oluşturacaktır.
ddelrio1986


12

komutu dene

> forever logs

veya

> sudo forever logs

günlük dosyasının konumunu alacaksınız


5

Bu benim için çalıştı:

forever -a -o out.log -e err.log app.js

5

forever start script.js Başlamak için normal yapmanız gerekiyor ve konsol / hata günlüklerini kontrol etmek için forever logs bu, sonsuza kadar saklanan tüm günlüklerin listesini yazdıracak ve sonra kullanabilirsiniz tail -f /path/to/logs/file.logve bu, canlı günlükleri pencerenize yazdıracaktır. Günlüklerin yazdırılmasını durdurmak için ctrl + z tuşlarına basın.


3

Bu eski bir soru ama ben de aynı sorunlarla karşılaştım. Canlı çıktı görmek istiyorsanız koşabilirsiniz

forever logs

Bu, günlük dosyasının yolunu ve komut dosyasının numarasını gösterir. Daha sonra kullanabilirsiniz

forever logs 0 -f

0, çıktısını görmek istediğiniz komut dosyasının numarası ile değiştirilmelidir.


1

Yardım en iyi kurtarıcınızdır, çalışan tüm işlemlerin günlüklerini kontrol etmek için çağırabileceğiniz bir günlük eylemi vardır.

forever --help

Komutları gösterir

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

Çalışan üç işlem için yukarıdaki komutun örnek çıktısı. console.log çıktıları bu günlüklerde saklanır.

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

1

Varsayılan olarak ihtiyaç duyduğu tüm dosyaları sonsuza kadar /$HOME/.forever içine yerleştirir. Bu konumu değiştirmek isterseniz, sonsuza kadar koşarken FOREVER_ROOT ortam değişkenini ayarlayın:

FOREVER_ROOT=/etc/forever forever start index.js

0

Çalıştırmak için dosya adından önce günlük hedefi belirticilerini eklemeniz gerekir. Yani

sonsuza kadar -e /path/error.txt -o /path/output.txt start index.js


0

Bryanmac'ın cevabına göre. Tüm günlükleri tek bir dosyaya kaydediyorum ve sonra onu kuyrukla okuyorum. Bunu yapmanın basit ama etkili yolu.

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

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.