Pages

raspberry pi と ログ出力(logrotate)

2014年11月17日月曜日

先日、raspberry pi と vnc を書いた所、
研究室の教授に「組み込み単機能コンピュータでx11を起動させるのは重すぎてあまりスマートではない」と指摘を受けたので、
アプリケーションの自動起動+ファイルへのログ出力
を行うことにしました。

今回は、logrotateを利用したログ出力に成功したので、それのメモ。
手探り状態でなんとか動いたという感じなので、おかしい所が多々あるかもしれないです…。

まずログローテーション(logrotate)を使ってみる ( httpd(apache)の設定例 )を参考に、logrotateがインストールされているか確認。
私の使用しているraspbianでは、デフォルトで入っていました。

/etc/logrotate.d/hogeというファイルを作成
中身はこんな感じ
1日毎にファイルを新しくして、(そういうわけじゃなかった(´・ω・`))4日分or1M分のファイルを残すようにしています。
詳しくは、上のサイトや、logrotateの設定ファイルで指定できる主なコマンドを参照してください。

私は、syslog経由でログを送ったので、
/etc/rsyslog.confの中身を書き換えました。

最後の行の
local0.*    -/var/log/hoge.log
を付け加えただけです。
local0については、システム管理の基礎 syslogdの設定をマスターしよう (2/3)のFacilityを参考に決めました。
私の理解が正しいのかわからないのですが、おそらくlocal0〜local7は任意のアプリケーションのために使えるのではないかと…。

ここで再起動。

pythonからログを出力するには、

>>> import syslog
>>> syslog.openlog('test', syslog.LOG_PID | syslog.LOG_PERROR, syslog.LOG_LOCAL0)
>>> syslog.syslog('test test test')
test[3227]: test test test
>>> syslog.closelog()

としました。
参考にしたのは、以下のサイト

ここで送ったログが/var/log/hoge.logに
Nov 17 18:34:31 raspberrypi test[3227]: test test test
というような感じで入ります。
めでたい。

あとは、自動起動。
明日がんばるー。


0 コメント:

コメントを投稿