研究室の教授に「組み込み単機能コンピュータでx11を起動させるのは重すぎてあまりスマートではない」と指摘を受けたので、
アプリケーションの自動起動+ファイルへのログ出力
を行うことにしました。
今回は、logrotateを利用したログ出力に成功したので、それのメモ。
手探り状態でなんとか動いたという感じなので、おかしい所が多々あるかもしれないです…。
まずログローテーション(logrotate)を使ってみる ( httpd(apache)の設定例 )を参考に、logrotateがインストールされているか確認。
私の使用しているraspbianでは、デフォルトで入っていました。
/etc/logrotate.d/hogeというファイルを作成
中身はこんな感じ
詳しくは、上のサイトや、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 コメント:
コメントを投稿