syslog-ngでrailsのログを集約する方法について
Sysloggerのインストール
Sysloggerをインストールする。
sudo gem install SyslogLogger
rails側の設定
config/environments/production.rb
以下を追記する。
require 'syslog_logger' RAILS_DEFAULT_LOGGER = SyslogLogger.new "appname"
config/environment.rb
以下を追記する。
RAILS_DEFAULT_LOGGER ||= Logger.new("#{RAILS_ROOT}/log/#{RAILS_ENV}.log")
syslog-ngの設定
/opt/syslog-ng/etc/syslog-ng.conf
以下を追記する。
destination d_rails_local { file("/var/log/appname.rails.production.${YEAR}${MONTH}${DAY}.log"); }; filter f_rails_log { program("appname.*"); }; log { source(s_local); filter(f_rails_log); destination(d_rails_local); };
参考
http://seattlerb.rubyforge.org/SyslogLogger/classes/SyslogLogger.html
Railsアプリケーションのログをsyslogに記録する方法 - Hello, world! - s21g
環境
$ ruby -v ruby 1.8.6 (2009-03-31 patchlevel 368) [i686-linux] $ rails -v Rails 1.0.0 $ cat /etc/redhat-release CentOS release 5 (Final) SyslogLogger (1.4.0) SyslogLogger is a Logger replacement that logs to syslog. It is almost drop-in with a few caveats.