Skip to content

Commit

Permalink
Expanded on the log renderer
Browse files Browse the repository at this point in the history
  • Loading branch information
coosh committed Jun 8, 2010
1 parent 542dacb commit 40b0914
Showing 1 changed file with 51 additions and 3 deletions.
54 changes: 51 additions & 3 deletions lib/clarity/renderers/log_renderer.rb
Expand Up @@ -6,6 +6,16 @@ class LogRenderer
# Thank you to http://daringfireball.net/2009/11/liberal_regex_for_matching_urls
#
UrlParser = %r{\b(([\w-]+://?|www[.])[^\s()<>]+(?:\([\w\d]+\)|([^[:punct:]\s]|/)))}

IpParser = %r{\b(\d{1,3}[.]\d{1,3}[.]\d{1,3}[.]\d{1,3})}
DateParser = %r{\[(\d{2}\/\w{3}\/\d{4}\:\d{2}\:\d{2}\:\d{2}\s\+\d{4})\]|^(\w{3}\s\d{2}\s\d{2}:\d{2}:\d{2})}
BrowserDetails = %r{;\s&quot;(.+)&quot;$}
EOLStatus = %r{\(.+\)\s?$}
HttpVerbs = %r{(GET|POST|PUT|DELETE|HEAD)}
Email = %r{(\b[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}\b)}
Emailstatus = %r{(status=\w+)}
KeyValue = %r(&quot;\w+&quot;=&gt;(?:&quot;[^&]+?&quot;|[0-9\.]+|true|false|nil|[A-Z].+?\s\d{4})(?:,|}))

Prefix = ""
Suffix = "<br/>\n"

Expand All @@ -17,7 +27,46 @@ def render(line = {})
output.gsub!(UrlParser) do |match|
html_link(match)
end


# Catch for key and value
output.gsub!(KeyValue) do |match|
(key, value) = match.split("=&gt;")
"<span class=\"keys\">#{key}</span>=&gt;<span class=\"values\">#{value}</span>"
end
# Formats IPs
output.gsub!(IpParser) do |match|
"<span class=\"ipaddress\">#{match}</span>"
end

# Format Standard unix log types formats
output.gsub!(DateParser) do |match|
"<span class=\"date\">#{match}</span>"
end
# Format end of line status messages in mail.log
output.gsub!(EOLStatus) do |match|
"<span class=\"eolstatus\">#{match}</span>"
end

# Format Apache Browser Specifics
output.gsub!(BrowserDetails) do |match|
"<span class=\"browser\">#{match}</span>"
end

# Format HTTP Verbs
output.gsub!(HttpVerbs) do |match|
"<span class=\"httpverbs\">#{match}</span>"
end

# Format Email addresses
output.gsub!(Email) do |match|
"<span class=\"email\">#{match}</span>"
end

# Format Email status messages
output.gsub!(Emailstatus) do |match|
"<span class=\"emailstatus\">#{match}</span>"
end

# Return with formatting
"#{Prefix}#{output}#{Suffix}"
end
Expand All @@ -32,5 +81,4 @@ def html_link(url)
uri = URI.parse(url) rescue url
"<a href='#{uri}'>#{url}</a>"
end

end
end

0 comments on commit 40b0914

Please sign in to comment.