2012-10-22 24 views
2

我正在玩寫Sinatra應用程序。我想從配置塊中記錄一些東西。但是,它在應用程序範圍內運行,如果我在配置塊中執行enable :logging,則不包含記錄器方法。是否有一些正常的方式來記錄來自配置塊的消息,同時尊重我有效的任何日誌配置?在Sinatra的應用範圍中運行時,什麼是「正確」的日誌記錄方式?

目前,我這樣做如下:

class Blah < Sinatra::Base 
    configure do 
    enable :logging 
    @@log = Logger.new("/dev/stderr") 
    @@log.info "blah" 
    end 
end 

我寧願使用任何記錄是由enable :logger線配置,並且默認爲一個設置。像你描述的

class Blah < Sinatra::Base 
    configure do 
    enable :logging 
    logger.info "blah" 
    end 
end 

回答

0

從1.3(我認爲)西納特拉附帶了一個記錄器,但它在默認情況下寫入STDOUT和STDERR,如果你想將它打的:一些類似以下內容將是理想文件添加到您的config.ru:

logger = Logger.new('log/awesome_app.log') 

use Rack::CommonLogger, logger 
run AwesomeApp 
相關問題