2011-05-04 109 views
11

過去我以爲我只是瘋了。我可能是,但我的生產日誌根本不響應某些請求。我從移動客戶端將圖像發佈到我的Rails應用程序,然後在Web瀏覽器中獲取刷新的視圖。已更改的記錄清晰可見。以上都沒有顯示在我的生產日誌中,但類似的請求是在一小時前記錄的。我沒有改變任何配置文件。我沒有重新啓動我的服務器。有關爲何發生這種情況的任何建議?生產日誌不起作用

回答

2

低內存是我能夠想出的最可能的原因。如果我能證明這一點,我會在這裏發帖。

+0

最近,這可能是由於https://github.com/rails/rails/issues/4204 – 2012-02-01 19:13:54

11

檢查什麼值設置爲

config.log_level = :warn 

/rails_app/config/enviroments/production.rb 

FYI

可用的日誌級別:調試, :信息,:警告,:錯誤,:致命。

因此,如果您將級別設置爲致命,只會記錄嚴重錯誤。如果將其設置爲調試,幾乎所有內容都將被記錄。在生產中默認設置爲警告。這是有道理的。因爲您不希望無緣無故地在生產服務器上堆積大量日誌文件。

+0

config.consider_all_requests_local =真 config.action_controller.perform_caching =假 config.log_level =:調試(設置五天前) – 2011-05-04 05:13:05

+0

是有可能,有某種之間,一個緩存層的?這是回答你的客戶的要求?你能否驗證rails應用程序是否真正獲取了你想要記錄的請求? – thekindofme 2011-05-04 06:59:45

+0

我不知道其他緩存層是什麼。我使用CloudFlare進行DNS安全/緩存/分析,但它處於「開發模式」,無論如何它只適用於靜態文件。如果我的圖片上傳成功發佈到rails應用程序,我不明白爲什麼他們不會被記錄。 – 2011-05-04 21:36:58

2

我通過把

Rails.logger.instance_variable_get(:@logger).instance_variable_get(:@log_dest).sync = true if Rails.logger 

到我的配置/初始化/ ...

+0

'undefined method' sync ='for nil:NilClass(NoMethodError)'rails 4.1.2 – RAJ 2014-07-19 15:25:52

+0

你把這個文件放在哪個文件中? – unclesol 2015-11-21 18:24:41

6

在我的情況我第一次加入到config.log_level = :debug文件production.rb解決了這個問題,那麼我不得不創建production.log文件(在日誌文件夾),然後使用chmod命令給予適當的權限。

+1

chmod解決了我,謝謝。 – HelloWorld 2013-02-21 20:32:31

+0

什麼是適當的權限? – unclesol 2015-11-21 17:56:28

+0

@unclesol,我認爲0644 – 2015-11-25 21:16:46

0

我有和生產日誌相關的同樣的問題。從應用

tail -f /var/log/apache2/error.log 

消息:

追溯問題與Web服務器權限被拒絕 - 在/ var/WWW /應用-NAME /日誌/邀請。(錯誤:: EACCES)

cd /var/www/APPLICATION-NAME/log 

使用comman LL你會得到日誌的權限登錄

total 28 
drwxr-sr-x 2 www-data www-data 4096 Sep 18 03:55 ./ 
drwxrwsr-x 14 www-data www-data 4096 Sep 24 23:52 ../ 
-rw-r--r-- 1 root  www-data 71 Sep 18 03:55 agent_invitation.log 
-rwxrwxrwx 1 root  www-data 71 Sep 18 03:55 email.log* 
-rw-r--r-- 1 root  www-data 71 Sep 18 03:55 invitation.log 
-rw-r--r-- 1 root  www-data 71 Sep 18 03:55 messages.log 
-rw-r--r-- 1 root  www-data 51 Sep 13 01:32 production.log 

解決方案: 必須從根所有者更改爲其他用戶:

chown www-data:www-data ./ -R 

現在使用ll查看權限

total 28 
drwxr-sr-x 2 www-data www-data 4096 Sep 18 03:55 ./ 
drwxrwsr-x 14 www-data www-data 4096 Sep 24 23:52 ../ 
-rw-r--r-- 1 www-data www-data 71 Sep 18 03:55 agent_invitation.log 
-rwxrwxrwx 1 www-data www-data 71 Sep 18 03:55 email.log* 
-rw-r--r-- 1 www-data www-data 71 Sep 18 03:55 invitation.log 
-rw-r--r-- 1 www-data www-data 71 Sep 18 03:55 messages.log 
-rw-r--r-- 1 www-data www-data 51 Sep 13 01:32 production.log 

重新啓動你的web服務器:

sudo service apache2 restart 

現在檢查生產記錄。