我目前正在使用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 日志记录的方法。如果您有任何好的想法,请不吝赐教。再次感谢!
谢谢,
Patrick
file.reopen file.path, "a"
- Yaro