Bird
Raised Fist0
Ruby on Railsframework~10 mins

Logging and monitoring in Ruby on Rails - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to log an info message in Rails.

Ruby on Rails
Rails.logger.[1]("User signed in successfully")
Drag options to blanks, or click blank then click option'
Adebug
Berror
Cwarn
Dinfo
Attempts:
3 left
💡 Hint
Common Mistakes
Using debug level for normal info messages
Using warn or error for non-problematic events
2fill in blank
medium

Complete the code to set the log level to show warnings and above.

Ruby on Rails
Rails.logger.level = Logger::[1]
Drag options to blanks, or click blank then click option'
ADEBUG
BWARN
CINFO
DERROR
Attempts:
3 left
💡 Hint
Common Mistakes
Setting level to DEBUG logs too much information
Setting level to INFO logs less than required
3fill in blank
hard

Fix the error in the code to log an error message with exception details.

Ruby on Rails
begin
  # some code
rescue => e
  Rails.logger.[1]("Error occurred: #{e.message}")
end
Drag options to blanks, or click blank then click option'
Adebug
Binfo
Cerror
Dwarn
Attempts:
3 left
💡 Hint
Common Mistakes
Using info or debug for error messages
Using warn which is less severe than error
4fill in blank
hard

Fill both blanks to create a custom logger that writes to a file and sets the log level to debug.

Ruby on Rails
custom_logger = Logger.new([1])
custom_logger.level = Logger::[2]
Drag options to blanks, or click blank then click option'
A"log/custom.log"
BSTDOUT
CDEBUG
DINFO
Attempts:
3 left
💡 Hint
Common Mistakes
Using STDOUT instead of a file path for file logging
Setting log level to INFO instead of DEBUG
5fill in blank
hard

Fill all three blanks to filter logs for requests with status code 500 or higher and log the path and status.

Ruby on Rails
ActiveSupport::Notifications.subscribe("process_action.action_controller") do |*args|
  name, start, finish, id, payload = args
  status = payload[[1]]
  path = payload[[2]]
  if status.to_i [3] 500
    Rails.logger.error("Error at #{path} with status #{status}")
  end
end
Drag options to blanks, or click blank then click option'
A:status
B:path
C>=
D==
Attempts:
3 left
💡 Hint
Common Mistakes
Using string keys instead of symbols for payload
Using equality (==) instead of greater-than-or-equal (>=) for status check

Practice

(1/5)
1. What is the main purpose of logging in a Rails application?
easy
A. To record events and errors for later review
B. To monitor real-time server performance
C. To deploy the application automatically
D. To manage database migrations

Solution

  1. Step 1: Understand logging purpose

    Logging captures events and errors that happen in the app so developers can check them later.
  2. Step 2: Differentiate from monitoring

    Monitoring is about watching app health live, not storing past events.
  3. Final Answer:

    To record events and errors for later review -> Option A
  4. Quick Check:

    Logging = record events/errors [OK]
Hint: Logging saves past events; monitoring watches live [OK]
Common Mistakes:
  • Confusing logging with monitoring
  • Thinking logging deploys apps
  • Mixing logging with database tasks
2. Which of the following is the correct way to write a log message in Rails?
easy
A. logger.write("User signed in")
B. Rails.log('info', 'User signed in')
C. log.info('User signed in')
D. Rails.logger.info "User signed in"

Solution

  1. Step 1: Recall Rails logging syntax

    Rails uses Rails.logger with methods like info, error, debug to write logs.
  2. Step 2: Check each option

    Only Rails.logger.info "User signed in" uses correct Rails.logger.info syntax.
  3. Final Answer:

    Rails.logger.info "User signed in" -> Option D
  4. Quick Check:

    Rails.logger.info is correct syntax [OK]
Hint: Use Rails.logger.method("message") for logging [OK]
Common Mistakes:
  • Using undefined logger object
  • Wrong method names like write or log
  • Incorrect method call syntax
3. Given this Rails code snippet, what will be the log level of the message?
Rails.logger.warn "Disk space low"
medium
A. Info
B. Warn
C. Error
D. Debug

Solution

  1. Step 1: Identify the logging method used

    The method called is warn, which sets the log level to warning.
  2. Step 2: Match method to log level

    Rails.logger.warn writes a warning level message.
  3. Final Answer:

    Warn -> Option B
  4. Quick Check:

    Rails.logger.warn = Warn level [OK]
Hint: Method name matches log level (warn = Warn) [OK]
Common Mistakes:
  • Confusing warn with info or error
  • Assuming default log level is info
  • Mixing debug and warn levels
4. You added this line in a Rails controller but no log appears:
logger.error "Payment failed"
What is the most likely reason?
medium
A. The log level is set higher than error
B. Rails.logger must be used instead of logger
C. The logger object is not defined in controllers
D. Logging is disabled by default in Rails

Solution

  1. Step 1: Understand logger availability in controllers

    In Rails controllers, logger is available as a shortcut to Rails.logger.
  2. Step 2: Check log level settings

    If the log level is set higher than error (like fatal), error messages won't show.
  3. Final Answer:

    The log level is set higher than error -> Option A
  4. Quick Check:

    Log level filters out lower severity logs [OK]
Hint: Check log level filters if logs don't appear [OK]
Common Mistakes:
  • Assuming logger is undefined in controllers
  • Thinking Rails.logger must be used always
  • Believing logging is off by default
5. You want to monitor your Rails app's performance in production. Which approach is best?
hard
A. Use Rails built-in logger to track all performance metrics
B. Add custom puts statements in code to watch performance
C. Integrate an external monitoring tool like New Relic or Datadog
D. Rely on Rails console logs only

Solution

  1. Step 1: Understand Rails logging limits

    Rails logging records events but does not provide detailed real-time performance monitoring.
  2. Step 2: Identify best monitoring practice

    External tools like New Relic or Datadog specialize in monitoring app health and performance live.
  3. Final Answer:

    Integrate an external monitoring tool like New Relic or Datadog -> Option C
  4. Quick Check:

    Use external tools for monitoring, not just logs [OK]
Hint: Use specialized tools for monitoring, not just logs [OK]
Common Mistakes:
  • Expecting Rails logger to monitor performance live
  • Using puts for monitoring which is not scalable
  • Ignoring external monitoring solutions
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard