DZone Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world

Lance has posted 24 posts at DZone. View Full User Profile

Regular Expression To Parse Ruby Log Messages

08.15.2010
| 4201 views |
  • submit to reddit
        
# parse ruby log message
# customize as needed
LOG_EXPRESSION = /([\w]+),\s+\[([^\]\s]+)\s+#([^\]]+)]\s+(\w+)\s+--\s+(\w+)?:\s+(.+)/

# sample log output from this call:
#   logger.info("Ubiquitously") { "[dequeud] #{JSON.generate(params)}"}
string = 'I, [2010-08-15T16:16:46.142801 #81977]  INFO -- Ubiquitously: {"title":"Google","url":"google.com","tags":"search, google, api","services":["meta_filter","mixx"],"description":"a search engine!"}'

string.gsub(LOG_EXPRESSION) do |match|
  severity  = $1
  date      = $2 # Time.parse(date)
  pid       = $3
  label     = $4
  app       = $5
  message   = $6
end