[フレーム]
Last Updated: February 25, 2016
·
1.288K
· whoward

Easy Airbrake error logging for simple ruby scripts

Add this code to any one-off scripts you might run without supervision (cron jobs are a great use case) and if an exception is raised while running it it will be logged to Airbrake. A good place to put this is in a shared "boot" script that any of your one-off scripts include.

# configure Airbrake and set it up to automatically 
# report any non-standard errors when the program 
# exits
Airbrake.configure do |config|
 config.api_key = "<your-project-key-here>"
end

# this is one way to get the environment your script 
# is running in, you can change out the body of this 
# method with whatever works well for you.
def project_environment
 require 'socket'
 Socket.gethostname == "<your-production-server-hostname-here>" ? "production" : "development"
end

at_exit do
 # SystemExit and Interrupt are normal exceptions 
 # that terminate the ruby process, ignore them
 if $! and not [SystemExit, Interrupt].include? $!.class
 params = {:argv => ARGV.join(" "), :script => 0ドル}
 environment = project_environment

 if environment == "production"
 Airbrake.notify($!, :parameters => params, 
 :environment_name => environment)
 end
 end
end

This is partly derived from a code example in @jeg2's "101 things you didn't know ruby could do" talk https://speakerdeck.com/jeg2/10-things-you-didnt-know-ruby-could-do

This is my first protip: be nice!

AltStyle によって変換されたページ (->オリジナル) /