[logback-dev] [JIRA] Commented: (LBCLASSIC-185) Servlet filter which puts servlet-specific data into MDC

Torsten Juergeleit (JIRA) noreply-jira at qos.ch
Fri Feb 5 17:43:33 CET 2010

    [ http://jira.qos.ch/browse/LBCLASSIC-185?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=11515#action_11515 ] 

Torsten Juergeleit commented on LBCLASSIC-185:

Ralph is right here. Defining a generic servlet filter which caters all application-specific use cases isn't feasible.

E.g. in our applications we only need the request id and the context path within the MDC. The request id is used as correlation id to aggregate data from different log files. The context path is used to split log files on a per-webapp base via SiftingAppender. All the other servlet-related stuff (including the session id) goes into the log file(s) created by the logger used within the servlet filter. This log file provides all the the correlation ids (request id, session id, context path) to combine the corresponding data from all the other log files from various sub-systems.

To provide this kind of application-specific behaviour this servlet filter has to be extended.

Moving the MDC handling (including the key names) into a separate class (without dependency to the servlet API) is a good point. Not storing the session id is another good point.
Thanks for pointing out those issues.

So you can close this ticket.

Btw. how about my other feature request (with implementation) in http://jira.qos.ch/browse/LBCLASSIC-177  :-)

> Servlet filter which puts servlet-specific data into MDC
> --------------------------------------------------------
>                 Key: LBCLASSIC-185
>                 URL: http://jira.qos.ch/browse/LBCLASSIC-185
>             Project: logback-classic
>          Issue Type: New Feature
>          Components: Other
>    Affects Versions: 0.9.18
>            Reporter: Torsten Juergeleit
>            Assignee: Ceki Gulcu
>         Attachments: logback-test.xml, RequestLogFilter.java, RequestLogFilterTest.java
> Attached you can find a servlet filter which implements a strategy to put servlet-specific data into the SL4F MDC using the following keys: 
> * {{slf4j.servlet.requestId}} - Unique ID of the single HTTP request handled by this filter 
> * {{slf4j.servlet.sessionId}} - ID of the HTTP session this HTTP request is associated with or "" if no HTTP session was created yet 
> * {{slf4j.servlet.contextPath}} - Web apps context path 
> * {{slf4j.servlet.userName}} - Name of authenticated user or "" if no user is authenticated 
> This data is removed after the request is processed. 
> The following configuration parameters are supported by this filter: 
> * {{maxSessionIdLength}} - limiting the HTTP session id length to a certain value, e.g. for WebLogic this could be 52 (default: -1 [unlimited]) 
> To use this filter add the following lines to the {{web.xml file}}: 
> <code>
>   <filter>
>     <filter-name>RequestLogFilter</filter-name>
>     <filter-class>ch.qos.logback.classic.RequestLogFilter</filter-class>
>     <init-param>
>       <param-name>maxSessionIdLength</param-name>
>       <param-value>52</param-value>
>     </init-param>
>   </filter><br>
>       :
>   <filter-mapping>
>     <filter-name>RequestLogFilter</filter-name>
>     <url-pattern>/*</url-pattern>
>   </filter-mapping>
> <code>
> An SLF4 Logger named {{ch.qos.logback.classic.RequestLogFilter}} is used to log the start end end of calling the filter chain. This information should go into a separate log file.

This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators: http://jira.qos.ch/secure/Administrators.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the logback-dev mailing list