私は、CLIまたはデーモンの2つのモードで実行できるアプリケーションを持っています。syslogメッセージをstdoutにリダイレクトする方法はありますか?
ログには、syslog()
を使用しています。しかし、CLIモードで実行すると、LOG_DEBUG
というマークが付いているものを除き、すべてのログがログに記録される代わりにコンソールに送信されます。
私はsetlogmask()
を使用しようとしましたが、コンソールにリダイレクトしていないようです。
これを行うにはどのような方法が最適ですか?
AFAIK、FreeBSDのsyslogでは/etc/syslog.confを使ってリダイレクトすることができます。とにかく、それはあなたが探している方法ではありません。 CLIアプリケーションやデーモンとして実行しているかどうかを検出し、コンソールやsyslogに書き込む必要があるかどうかを検出する関数を書くことをお勧めします。 – maverik