SORU
20 HAZİRAN 2011, PAZARTESİ


Ne gibi stdout dosyasına ruby logger giriş çıkış alabilir miyim?

Bir tee işlevselliği logger gibi şeyler.

CEVAP
20 HAZİRAN 2011, PAZARTESİ


IO birden çok nesne yazacak o IO sözde bir sınıf yazabilirsiniz. Gibi bir şey

class MultiIO
  def initialize(*targets)
     @targets = targets
  end

  def write(*args)
    @targets.each {|t| t.write(*args)}
  end

  def close
    @targets.each(&:close)
  end
end

Sonra günlük dosyası olarak ayarlayın:

log_file = File.open("log/debug.log", "a")
Logger.new MultiIO.new(STDOUT, log_file)

Her zaman Logger STDOUT ve günlük dosyası yazmak. MultiIO nesne puts çağırır.

Düzenleme:Devam ettim ve arayüzü geri kalanı anladım. Bir günlük cihazı write close (puts) yanıtlaması gerekir. MultiIO gerçek IO nesnelere bu vekiller ve onlara yanıt verir sürece, bu çalışması gerekir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Chriselle Lim

    Chriselle Li

    26 Ocak 2008
  • Gavin Hoey

    Gavin Hoey

    21 Aralık 2007
  • Kyletiv7

    Kyletiv7

    28 Mayıs 2007