2016-01-07 29 views

回答

1

Coffeescript將被編譯爲javascript,然後發送並在瀏覽器中運行,因此它將無法訪問服務器中的日誌。 爲了可能,您需要在要發送消息的服務器中創建一個API(例如使用像素,AJAX或WebSockets)並在其中寫入日誌邏輯。

Coffescript:

log = (msg) -> 
    $.post '/tracker', { data: msg } 

的routes.rb

post '/tracker' => 'logger#create' 

loggers_controller.rb

class LoggersController < ApplicationController 
    def create 
    logger.debug params.data 
    render :nothing 
    end 
end 

德e這個解決方案作爲一個概念,如果你只是複製和粘貼,它可能無法馬上工作。另外,如果您在生產中使用這樣的解決方案時要小心,惡意的人可能會通過發送數據來濫用它,直到您的磁盤已滿,此時應用程序可能會開始出現故障。 (當然有其他方法)

+0

所以,它會像$ .post('/ route',「一些文字寫入」)?我不太瞭解咖啡,JavaScript或Ajax – EastsideDeveloper

+0

這是正確的,我已經用咖啡腳本的示例編輯了答案,但是您處於正確的軌道。您可以使用jQuery發佈數據,然後在Rails控制器中使用''logger.debug params.data''(或者您更喜歡) –

+0

您是否認爲我定義了要調試的日誌錯誤級別,這可以用於生產呢? – EastsideDeveloper