私はsupervisord、nginx、nodejs api、sidekiqを使用して3つのプロセスを実行していますが、後でnodejs apiやsidekiqなどからのログのみをフィルタリングできるようにログにタグを付ける方法はありますか?
編集
Dockerコンテナ内で実行しているため、すべてのログをstdoutに入れたい
ありがとう
supervisor-stdout
プラグインは、サブプロセス名のプレフィックスが付いたstdoutにサブプロセスログメッセージを出力します。
supervisord.conf
にloglevel = debug
を設定することで、サブプロセスログメッセージをstdoutに出力することもできますが、それによって他の多くのデバッグ情報も出力されます。
@mnaberez残念ながら、 supervisor-stdout
は、 Ubuntu16.04にapt-getを介してインストールされたスーパーバイザーでは機能しません。 エラーError: supervisor_stdout:event_handler cannot be resolved within [eventlistener:stdout]
スローします。
代替手段(pip経由でのインストール)ははるかに面倒です。 私は次のようなものでそれを実行することができました:
/path/to/supervisord -c /path/to/supervisord.conf
正しく実行されている:
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
ただし、サブプロセス名の前には付けられません。 使用する場合
[supervisord]
nodaemon = true
構成ファイルでは、プレフィックスが出力に表示されますが、ログファイルには書き込まれません。
私はかなり標準的なセットアップ(いくつかのトルネードプロセスとsupervisor_stdout)を使用しています:
[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
この問題または代替ソリューションに関する更新はありますか?
@ katsar0vと同じ
これに対する解決策も探しています。
最も参考になるコメント
@ katsar0vと同じ