Sent from Google Nexus Phone
On Feb 14, 2015 9:54 AM, "Rainer Jung" <rainer.j...@kippdata.de> wrote:
>
> Am 14.02.2015 um 12:46 schrieb Jeff Kohut:
>
>> On Fri, Feb 13, 2015 at 10:29 AM, Christopher Schultz <
>> ch...@christopherschultz.net> wrote:
>>
>>> -----BEGIN PGP SIGNED MESSAGE-----
>>> Hash: SHA256
>>>
>>> Jeff,
>>>
>>> On 2/13/15 10:28 AM, Jeff Kohut wrote:
>>>>
>>>> I am running Tomcat  7.0.54 on a Windows 2008 R1 with SP1
>>>> platform.
>>>>
>>>> I would like to control the contents of what gets logged to the
>>>> Tomcat localhost_access_log
>>>>
>>>> specifically , I would like to remove logging of entries like :
>>>>
>>>> 10.239.54.8 - - [13/Feb/2015:00:00:07 -0600] "GET /atb HTTP/1.0"
>>>> 200 573 10.239.58.29 - - [13/Feb/2015:00:00:08 -0600] "GET /atb
>>>> HTTP/1.0" 200 561
>>>>
>>>> we have some external load balancers and server monitoring
>>>> software periodically hitting the application web page to see if it
>>>> is responding. I would like to know how remove these entries to
>>>> reduce the amount of "noise" that is in the  localhost_access_log
>>>> log file, but allow other entries (i.e. from OTHER IP addresses or
>>>> with other functions like "POST" or other strings like "HTTP/1.1"
>>>>
>>>> I have examined the information at the below link (unfortunately
>>>> there is no example there with detail on what I am attempting to
>>>> do).
>>>>
>>>> http://tomcat.apache.org/tomcat-7.0-doc/config/valve.html
>>>>
>>>> Seems like I want to use the valve Access Log Valve Attributes:
>>>>
>>>> conditionIf
>>>>
>>>> or
>>>>
>>>> conditionUnless
>>>>
>>>> options from valve documentation, but it is not clear to me how to
>>>> do this (if this is the correct way ?).
>>>
>>>
>>> Yep, this is what you are looking for.
>>>
>>>> Server.xml currently has the following setup configuration:
>>>>
>>>> <!-- Access log processes all example. Documentation at:
>>>> /docs/config/valve.html Note: The pattern used is equivalent to
>>>> using pattern="common" --> <Valve
>>>> className="org.apache.catalina.valves.AccessLogValve"
>>>> directory="logs" prefix="localhost_access_log." suffix=".txt"
>>>> pattern="%h %l %u %t &quot;%r&quot; %s %b" />
>>>>
>>>> Is it possible to do this without programming (i.e. can I set the
>>>> valve components to simply filter on an ip address or key word
>>>> string (i.e. "Get /atb HTTP/1.0" and if that value is found in the
>>>> request, can I chose to then NOT write that entry to the
>>>> AccessLogValve). I have searched pretty thoroughly for some time on
>>>> how to do this, but the documentation simply does not provide
>>>> enough of an example on how to do this. I am not a programmer, but
>>>> would think that filtering entries out of logs based on criteria
>>>> would be a valuable feature to have.
>>>
>>>
>>> You have to have a way to set (or not) a request attribute in order to
>>> use conditionIf/conditionUnless. One way to do it without writing any
>>> of your own code is to use url-rewrite, which is more like
>>> url-do-whatever:
>>> http://tuckey.org/urlrewrite/
>>>
>>> You can configure that to set request attributes under certain
>>> criteria. Just have it set (or not) whatever attribute name you use
>>> for your conditional logging and you should be good to go.
>>>
>>> Hope that helps,
>>> - -chris
>>>
>>
>> Chris, Looks a bit complicated (but then I guess life is a bit
complicated
>> ;-) I was hoping for something built in. In looking at the explanation
and
>> a little at the support websites, it looks as if this is something to
>> rewrite what makes it to the actual webapps applications. I did not see
>> where it was used to be able to filter out the main tomcat access logs
(i.e
>> being able to control something so early as the Request and built in
Tomcat
>> logging), but I guess it may be possible to do that. I will look into
this
>> further if I have the time. As Andre pointed out in a follow up post, I
>> could just filter the access log into another file externally and do my
>> cleanup that way.
>> Thank you for taking the time to answer and provide something to look
into
>> further.
>
>
> I basically agree with André. And the URL rewrite filter is a nice and
powerful tool that's useful to learn about, although it can't be easily
integrated into a webapp from the outside (not moving it into the webapp
itself).
>
> If it happens that between your load balancer and Tomcat there is already
an Apache web server and the forwarding from Apache to Tomcat is done by
mod_jk, then you can set Tomcat request attributes from mod_jk by using
JkSetEnv. You would use a RewriteRule probably with a RewriteCond to set an
Apache environment variable for the requests that come from the LB, then
use JkEnvVar to forward that variable, then use the conditionUnless for the
Tomcat access log valve to suppress those requests. Using a seconds
AccessLogValve with conditionIf would let you log those requests to a
second log file.
>
> I'm not saying that I would inject a new Apache/mod_jk into the picture
just for that feature. But if it were already there ...
>
> Regards,
>
> Rainer
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: users-h...@tomcat.apache.org
>
All good thoughts, but no Apache.  If it can't be done in Tomcat, I will
likely just live without.
Thanks.

Reply via email to