質問
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
ただし、これは必ずしも予測可能またはサポートされているわけではありません。コードを今まで通りに維持する場合は、これがその方法です。
所属していません StackOverflow