ruby - Rails 3 模型记录器

标签 ruby ruby-on-rails-3 logging

我有一个模型,但我不希望它把它的查询写入公共(public)日志。是否可以为某些型号切换记录器?

最佳答案

你可以这样做:

如果你想以不同的方式格式化它,请创建一个自定义记录器。如果格式需要相同,你可以忽略它。

class ModelLogger < Logger
  def format_message(severity, timestamp, progname, msg)
    "#{timestamp.to_formatted_s:)db)} #{severity} #{msg}\n"
  end
end

在 config/initializers/中,创建 logs.rb 并添加:

model_logfile = File.open("#{RAILS_ROOT}/log/model.log", 'a')
model_logfile.sync = true
MODEL_LOG = ModelLogger.new(model_logfile)

现在,在您重新启动服务器后,

MODEL_LOG.debug "This will be logged to model.log"
MODEL_LOG.error "Errors also can be logged."

关于ruby - Rails 3 模型记录器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11883052/

相关文章:

ruby-on-rails - 提交帖子并获取和接收 ruby​​ 中的响应页面(外部网站)

ruby-on-rails - 在多个 Web 服务上创建抽象 API

ruby-on-rails - Rails 3.0 引擎 - 在 ActionController 中执行代码

ruby-on-rails - 在 Rails 模型中设置和获取虚拟属性

elasticsearch - 带Java堆栈跟踪的logstash多行编解码器

ruby - Ruby 中的这是什么,它为什么存在?

ruby-on-rails - 将格式为 'dd-m-yy' 的日期解析为有效日期

java - 运行 JAR 时如何配置日志记录?

ruby-on-rails - rails 3 测试用例 error.on( :field) Vs. 错误 [:field]

c# - 使用 nLog 丢失日志和不一致的存档从多个进程进行日志记录