そこで、対処として、make > ./make.log 2>&1 のようにすれば、カレントディレクトリのmake.logというファイルにメッセージがリダイレクトされます。後からmake.logを見れば、makeの結果が分かるわけです。
ただ、せっかくログ出力用のツールがあるので、これを使います。syslogです。
syslog へのログの転送
syslogへのログの転送にはloggerを使います。また、makeに関するログだけ別のファイルに出力した場合は、syslog.confを修正する必要があります。以下のコマンドで、syslogに向けてログを転送できます。make 2>&1 | logger -p local3.info -s -t make
2>&1: stderrをstdoutに渡します。パイプへstderrを渡すには、これが一番スマートなやり方だと思います。
-p: ファシリティとプライオリティを指定します。
-s: stderrに出力します。
-t: タグを指定します。
syslog.confの修正
syslog.confを以下のように修正すれば、local3ファシリティのinfoプライオリティのログだけを分けられます。(>>でアペンドすることで正しく動作するかは怪しい。追記する行より上に !ppp とあると、pppからのログに関するポリシと見なされます。行頭に!が付いている行がある場合、その行よりも上にポリシを追加すべきです。)% sudo echo "local3.info /var/log/make.log" >> /etc/syslog.conf
Debian Squeezeなど、最近のディストリビューションでは、セキュリティの観点から、暗号化して計算機外部へ転送できるので、rsyslogを使うことが多いです。この場合、/etc/rsyslog.confに上記のポリシを追記してください。
多分、他に良い方法があるんでしょうね。makeにそれらしいオプションがあるとか?
0 件のコメント:
コメントを投稿