Is there a library or easy way to catch exceptions thrown in a Ruby program and log it to a file? I've looked over log4r and logger, but the docs on both don't provide any examples on how I would do this. I run this program remotely and lose handles to stdout and stderr, if that information helps at all.
What would you recommend?
Rescue from
Exception
. Something like this probably makes sense:This will log the exception, and re-raise it so that the application actually raises an error in addition to the logging.
exception
is an instance ofException
, take a look at the docs for information about what you can do with this object (such as accessing the backtrace).Would it work if I did something like this:
What I need is to have all my uncaught exceptions move to the top-most level, and be caught there and subsequently recorded by the error logging function.
I'm trying this out now, but it would be great to have your suggestions.
If you're running a Rails app, the Exception Notification plugin is very handy.
If you want to take a walk on the wild side, try this:
This will intercept the creation of new exception objects at the moment of creation.
You can tweak the code of the class Exception in the part that puts to stdout the reason and the backtrace.
Don't forget to check if the logger can be null, the exception can be throwed before (or while) the logger its created.