質問

Syslog を使い終わったら必ず閉じることが絶対に重要ですか?そうしないと大きな悪影響はありますか?

どうしても必要な場合、どのような方法がよいでしょうか?クラス コンストラクターで Syslog を開いているのですが、Ruby でクラス デストラクターを実行する方法が見つかりません。現在、次のようなものがあります。

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

どこにあるのかすぐには分かりません Syslog.close 電話する必要がありますが、何を推奨しますか?

役に立ちましたか?

解決

open メソッドはブロックを受け入れます。次のようなことを実行します。

class Foo
  def do_something
    Syslog.open do
      # work with the syslog here
    end
  end
end

他のヒント

クラス変数として開いているようです...したがって、適切な方法は次のとおりです...

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

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

ただし、これは必ずしも予測可能またはサポートされているわけではありません。コードを今まで通りに維持する場合は、これがその方法です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top