Merge pull request #17 from oligot/logging_filter

Logging filter
This commit is contained in:
Jocelyn Fiat
2012-12-05 08:00:43 -08:00
2 changed files with 15 additions and 8 deletions

View File

@@ -53,7 +53,7 @@ feature {NONE} -- Initialization
setup_filter setup_filter
-- Setup `filter' -- Setup `filter'
local local
l_logging_filter: LOGGING_FILTER l_logging_filter: WSF_LOGGING_FILTER
do do
create l_logging_filter create l_logging_filter
filter.set_next (l_logging_filter) filter.set_next (l_logging_filter)

View File

@@ -5,7 +5,7 @@ note
revision: "$Revision$" revision: "$Revision$"
class class
LOGGING_FILTER WSF_LOGGING_FILTER
inherit inherit
WSF_FILTER WSF_FILTER
@@ -15,24 +15,31 @@ feature -- Basic operations
execute (req: WSF_REQUEST; res: WSF_RESPONSE) execute (req: WSF_REQUEST; res: WSF_RESPONSE)
-- Execute the filter -- Execute the filter
local local
l_user_agent: STRING l_user_agent, l_referer: STRING
l_date: DATE_TIME l_date: DATE_TIME
do do
if attached req.http_user_agent as ua then if attached req.http_user_agent as ua then
l_user_agent := ua.as_string_8 l_user_agent := "%"" + ua.as_string_8 + "%""
else else
l_user_agent := "-" l_user_agent := "-"
end end
create l_date.make_now if attached req.http_referer as r then
io.put_string ("[" + l_date.formatted_out (Date_time_format) + "] %"" + req.request_method + " " + req.request_uri l_referer := "%"" + r + "%" "
+ " " + {HTTP_CONSTANTS}.http_version_1_1 + "%" " + res.status_code.out + " " + l_user_agent) else
l_referer := ""
end
create l_date.make_now_utc
io.put_string (req.remote_addr + " - - [" + l_date.formatted_out (Date_time_format) + " GMT] %""
+ req.request_method + " " + req.request_uri
+ " " + {HTTP_CONSTANTS}.http_version_1_1 + "%" " + res.status_code.out + " "
+ res.transfered_content_length.out + " " + l_referer + l_user_agent)
io.put_new_line io.put_new_line
execute_next (req, res) execute_next (req, res)
end end
feature -- Constants feature -- Constants
Date_time_format: STRING = "yyyy/[0]mm/[0]dd [0]hh:[0]mi:[0]ss.ff3" Date_time_format: STRING = "[0]dd/[0]mm/yyyy [0]hh:[0]mi:[0]ss"
note note
copyright: "2011-2012, Olivier Ligot, Jocelyn Fiat and others" copyright: "2011-2012, Olivier Ligot, Jocelyn Fiat and others"