Sinatra 错误日志与哨兵集成

Sinatra Error log integration with sentry

下面是我的config.ru文件

require 'raven'
require './managers/log_manager.rb'

logger = LogManager.create_logger('/error.log')
logger.log(Logger::ERROR, "********** just testing **********")

puts "#{logger.inspect}"

Raven.configure do |config|
  config.dsn = 'https://secrect'
  config.logger = logger
  config.environments = 'development'
end

use Raven::Rack

只有例外得到通知。我的问题是获取错误日志数据的通知,但目前没有。

因为 Ruby 没有一致的日志记录解决方案,您可能必须编写自己的处理程序。

如果,即日志助手给你一个事件,你可能会做这样的事情:

def my_log_helper(event)
  if event.really_is_an_exception
     Raven.capture_exception(event.message)
  else
     Raven.capture_message(event.message)
  end
end

p.s。对不起我的糟糕ruby,我不流利

最主要的是,Raven 会尽可能地表现出神奇的一面,但除此之外,它倾向于直截了当。

您还可以通过集成做很多其他事情,例如发送本地化上下文,以及通常特定于环境的事情,但基础知识大多是直截了当的。