Saya menjalankan 3 proses menggunakan supervisord, nginx, nodejs api dan sidekiq, apakah ada cara untuk menandai log sehingga nanti saya hanya dapat memfilter log yang berasal dari api nodejs, atau sidekiq dan sebagainya?
EDIT
Saya ingin semua log masuk ke stdout karena saya menjalankan ini di dalam container buruh pelabuhan
Terima kasih
Plugin supervisor-stdout
akan mencetak pesan log subproses ke stdout yang diawali dengan nama subproses.
Anda juga dapat mencetak pesan log subproses ke stdout dengan menyetel loglevel = debug
dalam supervisord.conf
, tetapi itu juga akan mencetak banyak informasi debug lainnya.
@mnaberez Sayangnya, supervisor-stdout
tidak berfungsi dengan supervisor yang diinstal melalui apt-get di Ubuntu 16.04. Itu melempar kesalahan Error: supervisor_stdout:event_handler cannot be resolved within [eventlistener:stdout]
.
Alternatifnya (menginstal melalui pip) jauh lebih rumit. Saya bisa menjalankannya dengan sesuatu seperti ini:
/path/to/supervisord -c /path/to/supervisord.conf
berjalan dengan benar:
stdout RUNNING pid 1294, uptime 0:03:16
tornado-8000 RUNNING pid 1295, uptime 0:03:16
tornado-8001 RUNNING pid 1296, uptime 0:03:16
tetapi tidak memberi awalan nama subproses. Jika saya menggunakan
[supervisord]
nodaemon = true
di file konfigurasi saya, saya mendapatkan awalan yang ditampilkan di output, tetapi tidak tertulis di file log.
Saya menggunakan pengaturan yang cukup standar (beberapa proses tornado dan supervisor_stdout) dengan:
[program:tornado-8000]
command = /path/to/python myfile.py
stdout_events_enabled = true
stderr_events_enabled = true
...
[eventlistener:stdout]
command = /path/to/supervisor_stdout
buffer_size = 100
events = PROCESS_LOG
result_handler = supervisor_stdout:event_handler
Apakah ada pembaruan tentang masalah ini atau solusi alternatif?
Ingin tahu yang sama seperti @ katsar0v . Ada solusi alternatif untuk ini?
Mencari solusi untuk ini juga.
Komentar yang paling membantu
Ingin tahu yang sama seperti @ katsar0v . Ada solusi alternatif untuk ini?