web-dev-qa-db-ja.com

tail && journalctlを組み合わせる

私は自分のアプリとpostgresのログを追跡しています。

tail -f /tmp/myapp.log /var/log/postgresql/postgresql.main.log

Pgpoolのログを含める必要があります。以前はsyslogでしたが、現在はjournalctlにあります。

Tail -f && journalctl -fを結び付ける方法はありますか?

34
bikey

あなたは使うことができます:

journalctl -u service-name -f

-f、-follow

最新のジャーナルエントリのみを表示し、ジャーナルに追加された新しいエントリを継続的に印刷します。

ここでは、この回答を他と区別するために「service-name」を追加しました。テキストservice-nameではなく、実際のサービス名に置き換えます。

47
Toufic

ログエントリを journal に転送できます。

systemd-cat tail -f /tmp/myapp.log /var/log/postgresql.log

そしてjournalctl -f...を使用しますが、Markが述べたように、すべてのジャーナルエントリが出力されます。


これらのログとその特定のユニットからのメッセージのみをフィルタリングする1つの方法は、個別のSYSLOG_IDENTIFIERを使用することです。つまり、ユニットファイルを編集し、[Service]セクションの下に、たとえば.

SyslogIdentifier=my_stuff

ユニットを再起動し、同じ識別子でsystemd-catを実行します

systemd-cat -t my_stuff tail -f /tmp/myapp.log /var/log/postgresql.log

最後に、その特定の識別子についてのみジャーナルをクエリします。

journalctl -f -t my_stuff
20
don_crissti

Bashが利用可能な場合は、tailパラメータの1つとして プロセス置換 を使用できます。

tail -f /tmp/myapp.log /var/log/postgresql/postgresql.main.log <(journalctl -f)
4
Jeff Schaller

次のようなものを試してください:

tail -f /tmp/myapp.log >> /tmp/tail.log &
journalctl -f >> /tmp/tail.log &
tail -f /tmp/tail.log
1
Paul