過去に私はこれにsyslog-logger
gemを使用しました
これはイニシャライザで設定できます。
config.logger = Logger::Syslog.new("site1", Syslog::LOG_LOCAL5)
最近の ruby バージョンでsyslog/logger
は、標準ライブラリにもあります - 使い方はほとんど同じです。
デフォルトのテキスト ファイルではなく、syslog へのロギングを開始します。次に起こるのは、syslog の設定です。データの行き先を定義する rsyslog ルールを作成する必要があります。
最も簡単なことは次のようなものです
!site1 /var/log/site1.log
これは、プログラム名「site1」(Logger::Syslog の最初の引数) ですべてを指示します。
できることは他にもたくさんあります。たとえば、ログ メッセージを中央のログ サーバーに転送して、ログ メッセージをすべて 1 つのファイルに集約し、アプリ インスタンスごとに 1 つのログ ファイルを探す必要がないようにすることができます。
ログのローテーションにはlogrotateを使用します.rsyslogは実際にそのようなものを内部的に処理できると思いますが、詳細はわかりません.