Arch Linuxのジャーナルにログ情報を出力するいくつかのデーモンが(systemdユニットとして)実行されているシステムがあります。これらのユニットファイルのいくつかのジャーナル出力を、場所を指定する別のテキストファイルに送り、基本的にユニットのサブセットのログファイルを作成します。どうすればそれを実現できますか?
Arch Linuxのジャーナルにログ情報を出力するいくつかのデーモンが(systemdユニットとして)実行されているシステムがあります。これらのユニットファイルのいくつかのジャーナル出力を、場所を指定する別のテキストファイルに送り、基本的にユニットのサブセットのログファイルを作成します。どうすればそれを実現できますか?
回答:
これは不可能であり、上流では望ましくないようです(stdout / stderrを個々のファイルにリダイレクトします)。たとえば、http://lists.freedesktop.org/archives/systemd-devel/2012-March/004705.htmlを参照してください。詳細については、スレッド全体をお読みくださいこれがどのように機能するかを意図したコンテキスト情報。
できることは、syslogにログを記録し、その方法で個々のファイルに書き込むことです。または逆に、ユニットがログ自体を書き込むことができるプログラムを呼び出す場合は、それを使用してファイルにログを記録します。
また、を見てみたいことにsystemdサービスの表示標準出力/標準エラー出力
現在の設定ですでに実行できることは
journalctl -u yourunitname > yourlogfile_for_yourunitname
、ユニット「yourunitname」のジャーナル出力全体をファイルに送ることです。
後半では、上記のメーリングリストスレッドからのLennartのヒントも参照してください。
最近のsystemdバージョン
systemd-journalctl -o cat _SYSTEMD_UNIT=postgresql.service
では、などは、実際のメッセージのみを含み、他には何も含まない非常に単純な出力を作成する必要があります。「-f」を渡して、これをライブにすることもできます。」
編集:
実際には、新しいsystemdバージョンのコマンドはjournalctlのみであり、私が言えることは、上記の長いコマンドは同じでjournalctl -u yourunitname
あり、-f
そこから出力を「追跡」することもできます(tailfまたはtail -fなど)。