从rails写入咖啡脚本中的相应日志文件

时间:2016-01-07 23:44:25

标签: ruby-on-rails coffeescript

我不想使用console.log,而是希望让coffee脚本生成相应日志文件(生产,开发等)的条目。

这可能吗?

1 个答案:

答案 0 :(得分: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

将此解决方案作为一个概念,如果您只是复制粘贴,它可能无法正常工作。此外,如果您在生产中使用此类解决方案,请小心,恶意的人可以通过发送数据来滥用它,直到您的磁盘已满,此时您的应用程序可能会出现故障。 (当然,有很多方法)