ฉันติดตั้งตลอดไปและใช้งานอยู่พบว่ามันค่อนข้างตลก
แต่ฉันรู้ว่าท่อนไม้ถูกวางไว้ที่อื่น มีเคล็ดลับอะไรไหม?
ฉันติดตั้งตลอดไปและใช้งานอยู่พบว่ามันค่อนข้างตลก
แต่ฉันรู้ว่าท่อนไม้ถูกวางไว้ที่อื่น มีเคล็ดลับอะไรไหม?
คำตอบ:
Forever ใช้ตัวเลือกบรรทัดคำสั่งสำหรับเอาต์พุต:
-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
ตัวอย่างเช่น:
forever start -o out.log -e err.log my-script.js
ดูข้อมูลเพิ่มเติมได้ที่นี่
ตลอดไปโดยค่าเริ่มต้นจะใส่บันทึกลงในไฟล์แบบสุ่มใน~/.forever/
โฟลเดอร์
คุณควรเรียกใช้forever list
เพื่อดูกระบวนการทำงานและไฟล์บันทึกที่เกี่ยวข้อง
เอาต์พุตตัวอย่าง
>>> 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
อย่างไรก็ตามควรระบุด้วย-l
bryanmac ตามที่กล่าวไว้
หากคุณเรียกใช้คำสั่ง "บันทึกตลอดไป" คุณจะเห็นว่าไฟล์บันทึกอยู่ที่ไหน
ลองใช้คำสั่ง
> forever logs
หรือ
> sudo forever logs
คุณจะได้รับตำแหน่งของไฟล์บันทึก
สิ่งนี้ใช้ได้ผลสำหรับฉัน:
forever -a -o out.log -e err.log app.js
ต้องทำตามปกติ
forever start script.js
เพื่อเริ่มต้นและในการตรวจสอบคอนโซล / บันทึกข้อผิดพลาดใช้
forever logs
สิ่งนี้จะพิมพ์รายการบันทึกทั้งหมดที่เก็บไว้ตลอดไปจากนั้นคุณสามารถใช้งานได้tail -f /path/to/logs/file.log
และจะพิมพ์บันทึกสดไปยังหน้าต่างของคุณ กด ctrl + z เพื่อหยุดพิมพ์บันทึก
มันเป็นคำถามเก่า แต่ฉันพบปัญหาเดียวกัน หากคุณต้องการดูผลลัพธ์แบบสดคุณสามารถเรียกใช้
forever logs
สิ่งนี้จะแสดงเส้นทางของไฟล์บันทึกรวมทั้งหมายเลขของสคริปต์ จากนั้นคุณสามารถใช้
forever logs 0 -f
ควรแทนที่ 0 ด้วยหมายเลขของสคริปต์ที่คุณต้องการดูผลลัพธ์
ความช่วยเหลือเป็นผู้ช่วยที่ดีที่สุดของคุณมีการดำเนินการบันทึกที่คุณสามารถเรียกตรวจสอบบันทึกสำหรับกระบวนการที่กำลังทำงานอยู่ทั้งหมด
forever --help
แสดงคำสั่ง
logs Lists log files for all forever processes
logs <script|index> Tails the logs for <script|index>
ตัวอย่างผลลัพธ์ของคำสั่งด้านบนสำหรับสามกระบวนการที่กำลังทำงานอยู่ เอาต์พุตconsole.logจะถูกเก็บไว้ในบันทึกเหล่านี้
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
ตามค่าเริ่มต้นตลอดไปจะวางไฟล์ทั้งหมดที่ต้องการลงใน /$HOME/.forever หากคุณต้องการเปลี่ยนตำแหน่งนั้นเพียงแค่ตั้งค่าตัวแปรสภาพแวดล้อม FOREVER_ROOT เมื่อคุณทำงานตลอดไป:
FOREVER_ROOT=/etc/forever forever start index.js
คุณต้องเพิ่มตัวระบุปลายทางของบันทึกก่อนที่จะเรียกใช้ชื่อไฟล์ ดังนั้น
ตลอดไป -e /path/error.txt -o /path/output.txt เริ่มต้น index.js
จากคำตอบของ bryanmac ฉันแค่บันทึกบันทึกทั้งหมดลงในไฟล์เดียวจากนั้นอ่านด้วย tail วิธีง่ายๆ แต่ได้ผลจริง
forever -o common.log -e common.log index.js && tail -f common.log
forever myapp
? ขอบคุณ!