Skip to main content

Command Palette

Search for a command to run...

Tagged logs in Rails/ActiveSupport

Updated
1 min read

What's tags in logs?

It's from Rails' ActiveSupport to prepend automatically the logs with a parameter.

https://api.rubyonrails.org/classes/ActiveSupport/TaggedLogging.html

Rails.logger.tagged("background_job_number_1") do
 Rails.logger.error("Thing went wrong for user XXX")
end
#=> [background_job_number_1] Thing went wrong for user XXX

It's very useful in many cases, specially in a background system or a shared code that method:

def shared_method
  if true
    Rails.logger.info("User XXX: done")
  else
    Rails.logger.error("User XXX: failure")
  end
end

def user_update_flow
  Rails.logger.tagged("user_update_flow") do
    shared_method
    # Log: [user_update_flow] User XXX: done
  end
end

def user_create_flow
  Rails.logger.tagged("user_create_flow") do
     shared_method
    # Log: [user_create_flow] User XXX: done
  end
end

In that example, depending on the caller, the logs will be prepend with the expected tag or tags.

Feel free to shared and comment.

More from this blog

Thomas Brennetot

21 posts

10+ years experienced software engineer living in Tokyo.