2012-03-09 28 views
9

Bir demo HelloWorld Rails uygulaması yazdım ve WEBrick ile test ettim (bir DB kullanmıyor, sadece "merhaba dünya" yazan bir denetleyici). Sonra onu Yolcu ile çalışan yerel bir Apache'ye dağıtmaya çalıştım. Aslında bu test sadece Yolcu çalışması yapmaktır (bu benim Apache'de ilk konuşmamdır). Şimdi, Yolcu'nun çalıştığından bile emin değilim, ama Apache tarafında bir hata göremiyorum.production.log dosyasında bir ileti yok

http://rails.test/ numaralı telefonu açtığımda, tarayıcı Rails 500 hata sayfasını gösteriyor - dolayısıyla Yolcu'nun çalıştığını varsayalım. Günlükleri araştırmak istiyorum, ancak production.log boş! Bunun bir izin sorunu olduğunu düşünmüyorum, çünkü dosyayı silersem sayfayı yeniden yüklediğimde yeniden oluşturulur. Ben, conf/environments/production.rb günlük düzeyini değiştirmeye çalıştı elle Raylar konsol üretimi ve

Rails.logger.error('asdf') 

o true döner ama hiçbir şey production.log yazılır alır ile log dosyası yazmaya çalıştı. Yol (Rails.logger.inspect başına alınır) doğrudur ve el ile kaldırırsanız dosyanın yeniden oluşturulduğunu bildiririm. Neler olduğunu nasıl bilebilirim?

Eğer Rails 3.2 çalıştırıyorsanız varsayarsak

+0

Hala bu problemi yaşıyorum, raylar 4'ümde olmama rağmen ... ne yaptın? – Braden

+0

Sadece yükseltilmiş Raylar. Bu bir regresyon olabilir – Raffaele

cevap

13

(böylece sunucu tarafından giriş yapmadıysa, zaten Apache kayıtlarını kontrol ettik, artı Yolcu için en yüksek ayıklama düzeyini ayarlamak ama bir Raylar sorunu görünüyor). 1, bu bir hatadır. patched in 3.2.2 idi.

Herhangi bir sebepten dolayı 3.2.2 yükseltme yapamıyorsanız, this comment on GitHub has a workaround:

# config/initializers/patch_rails_production_logging.rb 
Rails.logger.instance_variable_get(:@logger).instance_variable_get(:@log_dest).sync = true if Rails.logger 
+0

Tuhaf olan şey, Rails konsolunda 'Logger.flush' ile oynadım, ancak herhangi bir etkisi yoktu. Yükseltme benim sorunum çözüldü – Raffaele

+0

Bu yardımcı oldu sevindim. Yanıtı yeni sürüme geçiremeyen herkes için bir çözümle güncelledim. – Brandan

+0

'undefined method 'sync =' nil için: NilClass (NoMethodError)' raylar ile 4.1.2 – RAJ

3

bu raylar 3.2.11 üzerinde çalışır Ayar:

Rails.logger = ActiveSupport :: BufferedLogger.new (Rails.root.join ("log", "production.log"))

+2

Merhaba - bu satırı nereye ekliyorum? – undefined

+0

Bunu, yapılandırma altında bir başlatıcıya koydum. örneğin, "config/initializers/logger.rb": 'if! Rails.env.development? Rails.logger = ActiveSupport :: BufferedLogger.new (Rails.root.join ("günlüğü", "# {Rails.env} .log")) end ' Cidden, kesim yapıştırmadan nasıl yeni satır alırım yeni satırda? Enter tuşuna basarsam, düzenlememi kaydeder. –

İlgili konular