Skip to content

Instantly share code, notes, and snippets.

@kares
Created August 19, 2010 13:12
Show Gist options
  • Save kares/537835 to your computer and use it in GitHub Desktop.
Save kares/537835 to your computer and use it in GitHub Desktop.
separate logging file per cluster member configuration sample for mongrel/thin
# Sample configuration snippet for clustered production environment.
# - choose Your preferred server (Mongrel or Thin) - You do not need both !
# - each cluster member will log to it's own 'production.PORT.log' file
# 1. Mongrel Cluster :
config.gem 'mongrel', :version => '~> 1.1.5', :lib => false
config.gem 'mongrel_cluster', :version => '~> 1.0.5', :lib => false
ObjectSpace.each_object(Mongrel::HttpServer) { |i| @_server_port = i.port } rescue nil
# 2. Thin Server :
config.gem 'thin', :version => '~> 1.2.7', :lib => false
ObjectSpace.each_object(Thin::Server) { |i| @_server_port = i.port } rescue nil
# use a different logger for distributed setups :
if defined?(@_server_port) && @_server_port && @_server_port.to_i > 0
config.logger = Logger.new("#{RAILS_ROOT}/log/#{RAILS_ENV}.#{@_server_port}.log", 20, 5242880) # 20 x 5 x #servers MB
else
# need to be able to run this code during migrations or console
puts "Port could not be introspected; not running a Mongrel/Thin in this instance."
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment