2012-09-19 58 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|