2012-05-29 15 views
7

私はDebianサーバ上でいくつかのRails 3.0サイトを実行しています。現在、すべてのログは、私はすべてのログがrsyslogのを通過し、中に配置されるように、これを変更したいRAILS_ROOT /ログ/ production.log(各サイトにRAILS_ROOT)Rails 3.0でrsyslogdを使用する

に入る:

/var/log/rails/site1.log 
/var/log/rails/site2.log 
etc. 

もこれらのログを毎日自動回転させる必要があります。

これはどのように行われますか?私はこの

ためsyslog-logger宝石を使用していた過去に

/カーステン

答えて

14

あなたはイニシャライザでこれを設定することができます。最近のRubyのバージョンでは

config.logger = Logger::Syslog.new("site1", Syslog::LOG_LOCAL5) 

は、にもsyslog/loggerあります標準ライブラリ - 使用法はほとんど同じです。

デフォルトのテキストファイルではなくsyslogにログを記録します。次に何が起こるかは、syslog設定の事です - あなたはあなたのデータは

をどこに行くか、できるだけ簡単なものは、プログラム名「SITE1」ですべてを指示し

!site1 /var/log/site1.log 

ようなものになるだろう定義rsyslogのルールを作成する必要があります(Logger :: Syslogの最初の引数)。

さらに多くのことができます。たとえば、ログメッセージを1つのファイルにまとめて中央のログサーバーに転送するなどして、各アプリケーションインスタンスのログファイルが1つもない。

私はlogrotateを使用しています - 私はrsyslogが内部的にこの種のものを実際に処理できると信じていますが、詳細はわかりません。

+0

申し訳ありませんが、まだ私はこれにコメントしていませんでした - 見ていない、答えがあった。私は来週にこれを試してみます - ありがとう! –

+0

Syslog :: LOG_LOCAL5 - ここにタイプミスはありませんか? –

+0

ちょうど終了が欠落しています)。それ以外は、プロダクションアプリの設定ファイルからまっすぐに来ました。 –

関連する問題