json_structured_logging
🛠️ Emit Structured JSON Logs for Easy Parsing
JSON-formatted logs integrate seamlessly with log management systems like ELK or Datadog. Using a structured logger makes it trivial to query specific fields such as user IDs or transaction statuses.
require 'json'
logger = Logger.new(STDOUT)
logger.formatter = proc do |severity, datetime, progname, msg|
JSON.dump({
severity: severity,
time: datetime.iso8601,
progname: progname,
message: msg
}) + "\n"
end
logger.info("Payment processed", user_id: current_user.id, amount: order.total)
This approach yields one JSON object per line, enabling advanced log searches and metric extraction.