Post navigation

How to Log in Ruby on Rails | Treehouse Quick Tips

Logging is extremely useful. URL, paramaters, database calls, and other useful information. There are 5 levels of logging in Ruby on Rails: Debug, Info, Warn, Error, and Fatal. In production, all logging is set to “Info” level by default. All other levels are set to “Debug”

This video will show you how to add a debug statement to a Rails application. In the log file Rails shows the controller, database calls, the cache, what it’s rendering, and what it is returning. You can add a debug logging statement in the controller using logger.debug command.

It’s easy to add logging statements to your web apps. If your app is returning errors, try checking the logs to see the status of your objects.

Video Transcription

Jason: Hi, I’m Jason. In this Treehouse quick tip, we’re going to talk
about how to log in Ruby on Rails. Logging is an extremely useful tool
that’s built in to every Rails application. By default, a Rails applet
logged the URL of the current request, the parameters, database calls, and
a few other useful pieces of information. It’s possible to use your own log
statements in your applications, and it’s also very easy to do.

There are five different levels of logging in Ruby on Rails: Debug, Info,
Warn, Error, and Fatal. The defaults vary per environment as well. In
production, all logging is set to Info level by default. Every other
environment is set to Debug. What this means is that you won’t see as many
log messages coming through your production logs. In development and test
environments, you probably want to see more information, which is why it’s
set to Debug.

Now let’s take a look at how to add a Debug statement to a Rails
application. I’ve got a sample Rails application right here that I’m going
to start the server off right now. Now with this application started, I can
go and take a look at what’s going on here. If I go to local host 3,000,
you can see I have a random listing of status updates. This is a sample
application called Treebook, which simulates a social network. If I go look
at the log here, you can see the Rails print out some information for us,
saying what controller we’re on, as well as some database calls, and what’s
going on here from the cache, and what it’s rendering and what it’s
returning. Let me clear this for a second.

If I want to add my own Debug statement, I can do that right here in the
controller, or even in one of the models. Right now, I’m going to add a
logging statement for debugging, so I’m going to say “logger.debug”, and
I’m just going to put something in all caps here, “I’m a debugging
statement.” So I save that file and then I go back to my application. Now I
reload it in my web browser, and then, if I go check the log back here, you
can see that it prints, “I am a debugging statement,” which is the same
thing that I wrote here in my controller. Now, if I wanted to, I could also
have written this inside one of the models or views, although you don’t
generally log things from views. This isn’t very useful except for maybe,
saying where I am in the application.

A more useful thing to do would be to debug the statuses. I can do
something like “logger.debug” and inspect the different statuses in my log.
Let me clear this, and reload the page. If I go back to the log here, I
can see the different inspections of the status model, right here in my
log. This can be really useful when you’re trying to debug certain parts of
an application.

Now, if I were to restart this in production mode, the production log
wouldn’t display anything because it’s going to a log level of Debug. You
can change what level of debugging is going on inside of the different
environment files. Over here, in production, you would uncomment this line
and change the log level to Info or Warn or Fatal. As you can see, it’s
extremely easy to add logging statements to your application. Next time you
get caught up and can’t figure out why your app is behaving a certain way,
try looking at the logs and checking out the status of your objects.

Announcer: If you’d like to see more advanced videos and tutorials like
this one, go to TeamTreehouse.com and start learning for free.

Free Workshops

Jason Seifer

Jason Seifer is a web developer, podcaster, world traveler, astronaut, and more. He also teaches at Treehouse. You can find him on Twitter @jseifer.

Comments

Comments are closed.

Hello! We're the teachers here at Treehouse. We produce video courses on everything from web design and web development to iOS and business skills. You can browse our full library of content to find the course that's right for you.

In the meantime, explore the free features, tips, tricks and videos here on our blog. Tell us what you think, we'd love to chat: blog@teamtreehouse.com

Stay Updated

Sign up for our newsletter, and we'll send you news and tutorials
on web design, coding, business, and more! You'll also receive these
great gifts:

checkArt and the Web: Line, Shape, and Form - An eBook by Treehouse Teacher Nick Pettit.

checkOn Freelancing - An audiobook about running your own business by Simon Collison.

Swift is a new programming language created by Apple to program iOS apps. If you are new to programming or to Swift then this course is for you. Learn about programming concepts like: variables, types, collections and control structures.

Ruby is a programming language with a focus on simplicity and productivity, and it's used to create some of the biggest websites in the world. Learn how to work with Ruby and write simple Ruby programs in this introductory course.

Interested in creating Android apps? Learn the Java programming language, a tool for Android development called Android Studio, and some very basic concepts of the Android Software Development Kit, or SDK.

Bring your big idea to life! Learn how to start a company on the right foot with an introduction to basic business concepts, including corporate structure, marketing, finance, and accounting. Then you’re ready for more advanced business strategies.