Ruby Net-SFTP捕获和日志异常

use*_*586 1 ruby net-sftp rufus-scheduler

我有一个简单的SFTP脚本,我正在测试它连接到服务器并下载文件名中具有特定日期的文件或文件.

我每隔X分钟使用rufus/scheduler来启动脚本的SFTP部分,以查看服务器上是否有新文件.

这一切似乎都有效,直到我故意强制发生错误,例如提供错误的登录凭据.然后我希望能够捕获确切的错误或异常并使用logger记录它.我没有得到错误详细信息或我没有正确使用救援:

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
Run Code Online (Sandbox Code Playgroud)

Bri*_*ong 6

添加:verbose => Logger::DEBUG工作吗?

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