代码之家  ›  专栏  ›  技术社区  ›  Chris Bunch

ruby-确保系统日志关闭

  •  1
  • Chris Bunch  · 技术社区  · 16 年前

    在使用完系统日志之后,我总是关闭它,这是绝对重要的吗?不这样做会产生巨大的负面影响吗?

    如果结果证明我确实需要这样做,那么有什么好方法可以做到呢?我正在我的类构造函数中打开Syslog,我看不到在Ruby中使用类析构函数的方法,目前有类似的方法:

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

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

    2 回复  |  直到 16 年前
        1
  •  2
  •   Armin Ronacher    16 年前

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

    class Foo
      def do_something
        Syslog.open do
          # work with the syslog here
        end
      end
    end
    
        2
  •  1
  •   whoisjake    16 年前

    它看起来像是作为类变量打开的…所以正确的方法是…

    class Foo
      def initialize
        @@log = Syslog.open("foo")
      end
    
      def Foo.finalize(id)
        @@log.close if @@log
      end
    end
    

    尽管这不是必须预测或支持的。如果你想让代码保持原样的话,这是一种方法。