2013-03-04 11 views
7

boş, ben:Rails'in production.log dosya ben Rails 2.3.13 kullanarak ve benim <code>environments/production.rb</code> yılında ediyorum

config.log_level = :info 
RAILS_DEFAULT_LOGGER = SyslogLogger.new('mysite-platform-production') 

Oysa benim log/production.log boş. Bu neden olsun ki?

+0

değilsin ... açıkça ama Raylar tarafından varsayılan olarak yapılır, bu yüzden sadece kodunuzda RAILS_DEFAULT_LOGGER kurmadığını önerip/production.log örtülü günlüğüne kaydeder bir logger almalısınız ki bunu bir şey kayıt etmek? –

+1

En azından günlükte vurulmuş yollar olmamalı mıydı? – Shamoon

+0

"log/production.log" için verilen yazma izinleri uygun mu? –

cevap

8

, sizin günlüğü mevcut çoğu durumda (syslog girecek böylece Unix sistemlerinde /var/log/syslog'daki bir dosya olarak ve bir log dosyasına değil. Kaydediciye ilettiğiniz parametre (mysite platform üretimi), bir dosya adı değil, syslog tarafından kullanılan tanımlayıcıdır. Ben aslında gerek yok eminim:

RAILS_DEFAULT_LOGGER = Logger.new('log/production.log') 

Ama: Eğer günlük dizininde bir dosyaya kaydetmek istiyorsanız,

, aşağıdaki gibi arşivleyiciyi kurmak zorunda

+1

Bu makinenin 4 farklı örneğini çalışıyorum ve bir AWS yük dengeleyicisinin arkasındayım - bu nedenle günlüğün tüm – Shamoon

+0

adresinde yazıldığından emin değilim. Günlük kaydı her bir makinenin sysloguna gider. Syslog daemon büyük olasılıkla bir dosyaya (*/var/log/syslog *) kaydeder, ancak başka bir makineye iletmek için de yapılandırılabilir ... Bkz. Http://en.wikipedia.org/ syslog hakkında daha fazla bilgi için wiki/Syslog. – severin

+0

Fakat sorunuza geri dönün: günlük girişlerinizi nereye gitmek istersiniz? Her makinede uygulama dizinindeki bir dosyaya mı? – severin

-1

sen logger ayarlamak nasıl göz önüne alındığında, production.log değil, 'mysite platform-üretim' adlı bir dosya bulmak gerekir ve bu projenizin kök dizininde üzerinde olacaktır. Eğer 'log/mysite platform-production.log' bunu bulmak istiyorsanız yapmanız gerekir: Bir SyslogLogger başlatmasını olan

RAILS_DEFAULT_LOGGER = SyslogLogger.new('log/mysite-platform-production.log') 
+2

Syslog logger ** bir dosyaya oturum açmaz **, sadece günlükleri yerel syslog daemonuna gönderir ve ardından günlükleri nereye yazacağına veya göndereceğine karar verir. Kaydedici başlatılmasında parametre bir dosya yolu belirtmiyor. –

İlgili konular