On Rails irb Logging
June 26, 2011 § Leave a comment
When dealing with Rails apps logging debug statements is one of first methods turned to when trying to diagnose a problem. A lot of times
logger.debug is used and will write its output to
log/development.log. This is great when you are running the server, but when you fire up the console and want to work there, you previously had two options. One is to change all of the
logger.debug statements into
puts so they show up in the console’s terminal window. The other is two just keep switching back and forth between the console and a tail of the file.
Now you can toggle the app’s logger so that it writes to
STDOUT. Just throw this in your
.irbrc file and call
toggle_console_logging from the console’s command line.
def toggle_console_logging if ActiveRecord::Base.logger == Rails.logger l = Logger.new(STDOUT) l.level = Rails.logger.level set_logger l and return "console" else set_logger Rails.logger and return "log file" end end def set_logger(logger) ActiveRecord::Base.logger = logger ActiveRecord::Base.clear_active_connections! end
You can check out the gist here.