Custom Log Location in Rails
I use Dropbox to "backup" my workspace as well as provide seamless machine switching. This means, all of my Rails projects are on Dropbox. However, I discovered, that the logging is really burdensome to have Dropbox continuously syncing.
The solution, obviously, re-locate where Rails logs to. However, I didn't want to inflict this requirement on my co-developers.
I wrote a simple class to redirect the logging...
lib/config/log_to_user_dir.rb
class LogToUserDir
  LOGS_DIR    = "~/Library/Logs"
  def self.load
    log_dir = File.expand_path( File.join( LOGS_DIR, 
        Rails.application.class.parent_name ) )
    FileUtils.mkdir_p( log_dir )
    path = File.join( log_dir, "#{Rails.env}.log" )
    logfile = File.open( path, 'a' )
    logfile.sync = true
    Rails.logger = Logger.new( logfile )
  end
endUsing my override mechanism which doesn't impact my co-developers (see http://coderwall.com/p/eekfuw), I added this to my config/overrides/development.rb
MyApp::Application.configure do
  # log to our user's log directory
  LogToUserDir.load
endIf you prefer something more configurable, modify the log class to accept a parameter which sets the logging directory location (note: might want to change it's name at that point, as well).

 
 
 
 
