Tagged logs in Rails/ActiveSupport
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.
About the author
10+ years most with Ruby on Rails and JavaScript frontend and some Go. My first language is C for 3 years in university.
Comments
Join the discussionNo comments yet. Be the first to comment.
