我目前正在用 Ruby 编写一个项目,该项目使用 ActiveRecord gem 进行数据库交互,并且我正在尝试使用ActiveRecord::Base.logger
具有以下代码的属性记录所有数据库活动
ActiveRecord::Base.logger = Logger.new(File.open('logs/database.log', 'a'))
这适用于迁移等(由于某种原因,这似乎需要启用日志记录,因为它在禁用时会给出 NilClass 错误)但是当我尝试运行包含调用 ActiveRecord 对象的线程守护程序的项目时,脚本失败并显示跟随错误
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/logger.rb:504:in `write': closed stream (IOError)
任何有关如何解决此问题的想法将不胜感激。目前我已经开始查看其他代码,看看人们是否有其他方法可以以更线程安全的方式实现 ActiveRecord 日志记录
谢谢
帕特里克