1

使用完 Syslog 后总是关闭它是绝对重要的吗?不这样做会产生巨大的负面影响吗?

如果事实证明我绝对需要,那么有什么好方法呢?我在我的类构造函数中打开 Syslog,但我看不到在 Ruby 中执行类析构函数的方法,目前有类似这样的东西:

class Foo
  def initialize
    @@log = Syslog.open("foo")
  end
end

Syslog.close我没有立即看到应该打电话的地方,但你有什么建议?

4

2 回答 2

2

open 方法接受一个块。做这样的事情:

class Foo
  def do_something
    Syslog.open do
      # work with the syslog here
    end
  end
end
于 2008-09-21T18:54:33.707 回答
1

看起来你正在将它作为类变量打开......所以正确的方法是......

class Foo
  def initialize
    @@log = Syslog.open("foo")
  end

  def Foo.finalize(id)
    @@log.close if @@log
  end
end

尽管这不一定是可预测或支持的。如果您要按照自己的方式保留代码,这就是这样做的方法。

于 2008-09-21T19:24:25.163 回答