2012-09-19 59 views
0

我有一個簡單的SFTP腳本,我正在測試連接到服務器並下載一個或多個文件,並在文件名中包含特定日期。Ruby Net-SFTP捕獲和日誌異常

我正在使用rufus/scheduler每X分鐘啓動一次腳本的SFTP部分,以查看服務器上是否有新文件。

這一切似乎工作,直到我故意強制錯誤,如提供不正確的登錄憑據。然後,我希望能夠捕獲確切的錯誤或異常,並使用記錄器記錄它。我沒有收到錯誤細節或我不正確使用救援:

scheduler = Rufus::Scheduler::PlainScheduler.start_new(:frequency => 3.0) 
log = Logger.new('sftp.log') 
log.level = Logger::INFO 

begin 
log.info 'starting sftp' 
    Net::SFTP.start(HOST, ID, :password => PW) do |sftp| 
    sftp.dir.glob("./", "20120820*") do |entry| 
    puts entry.name 
    file = entry.name 
    success = sftp.download!(file, file) 
    end 
    end 
rescue Exception => e 
    puts e.message   # Human readable error 
    log.error ("SFTP exception occured: " + e.message) 
end 
scheduler.join 

回答

4

是否加入:verbose => Logger::DEBUG工作?

Net::SFTP.start(HOST, ID, :password => PW, :verbose => Logger::DEBUG) do |sftp|