Is it possible to log IP Address of requestor with custom AccessLogValve pattern?
Hello, My site is hosted on Tomcat 5.5 and I'm trying to log the IP Address of search engine bots that crawl the site. After reading the following documentation here, which is written very nicely btw http://tomcat.apache.org/tomcat-5.5-doc/config/valve.html http://tomcat.apache.org/tomcat-5.5-doc/catalina/docs/api/org/apache/catalina/valves/AccessLogValve.html I configured the pattern attribute of AccessLogValve as follows: Valve className=org.apache.catalina.valves.AccessLogValve directory=logs pattern=%a %A %h %H %u %t quot;%rquot; %s %b quot;%{Referer}iquot; quot;%{User-Agent}iquot; prefix=localhost_access_log. resolveHosts=false suffix=.txt / The following is a sample of what gets logged with the above configuration in server.xml . 127.0.0.1 68.120.115.43 127.0.0.1 HTTP/1.1 - [29/Oct/2006:23:50:13 -0800] GET /web/_stylesheet/table.css HTTP/1.1 304 - http://www.website.com/c/a_page.jsp; Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.7) Gecko/20060909 Firefox/1.5.0.7 The documentation says that %a is Remote IP Address, however 127.0.0.1 is being logged instead of the IP Address of the requestor. Is this correct? IMO %a should be the IP Address of the agent that's making the request - (i.e. the IP Address of a browser or a bot etc). Please let me know if there's a way to log IP Address of the agent that's making the request. Any help is appreciated. -Thank you Rashmi - To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Is it possible to log IP Address of requestor with custom AccessLogValve pattern?
what you defined is correct ... a simpler way is using default setting Valve className=org.apache.catalina.valves.AccessLogValve directory=logs prefix=your-site-access-log- suffix=.log pattern=common resolveHosts=false/ the result should be (if you are testing from same host) 127.0.0.1 - - [18/Oct/2006:18:54:48 +0800] GET /site/ HTTP/1.1 200 306 127.0.0.1 - - [18/Oct/2006:18:54:48 +0800] GET /site/Welcome.do HTTP/1.1 200 1775 (if your user testing from remote host) 202.110.6.23 - - [18/Oct/2006:19:03:44 +0800] GET /site/Welcome.do HTTP/1.1 200 8893 ... On 10/30/06, Rashmi Rubdi [EMAIL PROTECTED] wrote: Hello, My site is hosted on Tomcat 5.5 and I'm trying to log the IP Address of search engine bots that crawl the site. After reading the following documentation here, which is written very nicely btw http://tomcat.apache.org/tomcat-5.5-doc/config/valve.html http://tomcat.apache.org/tomcat-5.5-doc/catalina/docs/api/org/apache/catalina/valves/AccessLogValve.html I configured the pattern attribute of AccessLogValve as follows: Valve className=org.apache.catalina.valves.AccessLogValve directory=logs pattern=%a %A %h %H %u %t %r %s %b %{Referer}i %{User-Agent}i prefix=localhost_access_log. resolveHosts=false suffix=.txt / The following is a sample of what gets logged with the above configuration in server.xml . 127.0.0.1 68.120.115.43 127.0.0.1 HTTP/1.1 - [29/Oct/2006:23:50:13 -0800] GET /web/_stylesheet/table.css HTTP/1.1 304 - http://www.website.com/c/a_page.jsp; Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.7) Gecko/20060909 Firefox/1.5.0.7 The documentation says that %a is Remote IP Address, however 127.0.0.1 is being logged instead of the IP Address of the requestor. Is this correct? IMO %a should be the IP Address of the agent that's making the request - ( i.e. the IP Address of a browser or a bot etc). Please let me know if there's a way to log IP Address of the agent that's making the request. Any help is appreciated. -Thank you Rashmi - To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- When we invent time, we invent death.
Re: Is it possible to log IP Address of requestor with custom AccessLogValve pattern?
Li, Thanks for the reply. As indicated in your illustration, in your case the remote IP address (IP of the client browser) is correctly displaying. But in my case, for some reason even when my website is accessed remotely it always shows local IP Address (the website's IP address) and not the remote IP address. In other words %a %A %h is translating *always* to 127.0.0.1 68.120.115.43 127.0.0.1 Where 68.120.115.43 is the IP address of the website host and not the client (remote host). The website is hosted on a Tomcat 5.5 which is configured as a virtual host. I wonder if the virtual host setting might be the cause for not logging the actual remote IP address. If I can't get Access Log Valve to log the remote IP address then I might have to try it with Log4J with Commons Logging to log the remote IP address I guess. -Regards Rashmi - Original Message From: Li [EMAIL PROTECTED] To: Tomcat Users List users@tomcat.apache.org Sent: Monday, October 30, 2006 3:25:38 AM Subject: Re: Is it possible to log IP Address of requestor with custom AccessLogValve pattern? what you defined is correct ... a simpler way is using default setting Valve className=org.apache.catalina.valves.AccessLogValve directory=logs prefix=your-site-access-log- suffix=.log pattern=common resolveHosts=false/ the result should be (if you are testing from same host) 127.0.0.1 - - [18/Oct/2006:18:54:48 +0800] GET /site/ HTTP/1.1 200 306 127.0.0.1 - - [18/Oct/2006:18:54:48 +0800] GET /site/Welcome.do HTTP/1.1 200 1775 (if your user testing from remote host) 202.110.6.23 - - [18/Oct/2006:19:03:44 +0800] GET /site/Welcome.do HTTP/1.1 200 8893 ... On 10/30/06, Rashmi Rubdi [EMAIL PROTECTED] wrote: Hello, My site is hosted on Tomcat 5.5 and I'm trying to log the IP Address of search engine bots that crawl the site. After reading the following documentation here, which is written very nicely btw http://tomcat.apache.org/tomcat-5.5-doc/config/valve.html http://tomcat.apache.org/tomcat-5.5-doc/catalina/docs/api/org/apache/catalina/valves/AccessLogValve.html I configured the pattern attribute of AccessLogValve as follows: Valve className=org.apache.catalina.valves.AccessLogValve directory=logs pattern=%a %A %h %H %u %t %r %s %b %{Referer}i %{User-Agent}i prefix=localhost_access_log. resolveHosts=false suffix=.txt / The following is a sample of what gets logged with the above configuration in server.xml . 127.0.0.1 68.120.115.43 127.0.0.1 HTTP/1.1 - [29/Oct/2006:23:50:13 -0800] GET /web/_stylesheet/table.css HTTP/1.1 304 - http://www.website.com/c/a_page.jsp;; Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.7) Gecko/20060909 Firefox/1.5.0.7 The documentation says that %a is Remote IP Address, however 127.0.0.1 is being logged instead of the IP Address of the requestor. Is this correct? IMO %a should be the IP Address of the agent that's making the request - ( i.e. the IP Address of a browser or a bot etc). Please let me know if there's a way to log IP Address of the agent that's making the request. Any help is appreciated. -Thank you Rashmi - To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- When we invent time, we invent death. - To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Is it possible to log IP Address of requestor with custom AccessLogValve pattern?
Do you have a local proxy between the tomcat instance and the requestor? Rashmi Rubdi wrote: Li, Thanks for the reply. As indicated in your illustration, in your case the remote IP address (IP of the client browser) is correctly displaying. But in my case, for some reason even when my website is accessed remotely it always shows local IP Address (the website's IP address) and not the remote IP address. In other words %a %A %h is translating *always* to 127.0.0.1 68.120.115.43 127.0.0.1 Where 68.120.115.43 is the IP address of the website host and not the client (remote host). The website is hosted on a Tomcat 5.5 which is configured as a virtual host. I wonder if the virtual host setting might be the cause for not logging the actual remote IP address. If I can't get Access Log Valve to log the remote IP address then I might have to try it with Log4J with Commons Logging to log the remote IP address I guess. -Regards Rashmi - Original Message From: Li [EMAIL PROTECTED] To: Tomcat Users List users@tomcat.apache.org Sent: Monday, October 30, 2006 3:25:38 AM Subject: Re: Is it possible to log IP Address of requestor with custom AccessLogValve pattern? what you defined is correct ... a simpler way is using default setting Valve className=org.apache.catalina.valves.AccessLogValve directory=logs prefix=your-site-access-log- suffix=.log pattern=common resolveHosts=false/ the result should be (if you are testing from same host) 127.0.0.1 - - [18/Oct/2006:18:54:48 +0800] GET /site/ HTTP/1.1 200 306 127.0.0.1 - - [18/Oct/2006:18:54:48 +0800] GET /site/Welcome.do HTTP/1.1 200 1775 (if your user testing from remote host) 202.110.6.23 - - [18/Oct/2006:19:03:44 +0800] GET /site/Welcome.do HTTP/1.1 200 8893 ... On 10/30/06, Rashmi Rubdi [EMAIL PROTECTED] wrote: Hello, My site is hosted on Tomcat 5.5 and I'm trying to log the IP Address of search engine bots that crawl the site. After reading the following documentation here, which is written very nicely btw http://tomcat.apache.org/tomcat-5.5-doc/config/valve.html http://tomcat.apache.org/tomcat-5.5-doc/catalina/docs/api/org/apache/catalina/valves/AccessLogValve.html I configured the pattern attribute of AccessLogValve as follows: Valve className=org.apache.catalina.valves.AccessLogValve directory=logs pattern=%a %A %h %H %u %t %r %s %b %{Referer}i %{User-Agent}i prefix=localhost_access_log. resolveHosts=false suffix=.txt / The following is a sample of what gets logged with the above configuration in server.xml . 127.0.0.1 68.120.115.43 127.0.0.1 HTTP/1.1 - [29/Oct/2006:23:50:13 -0800] GET /web/_stylesheet/table.css HTTP/1.1 304 - http://www.website.com/c/a_page.jsp;; Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.7) Gecko/20060909 Firefox/1.5.0.7 The documentation says that %a is Remote IP Address, however 127.0.0.1 is being logged instead of the IP Address of the requestor. Is this correct? IMO %a should be the IP Address of the agent that's making the request - ( i.e. the IP Address of a browser or a bot etc). Please let me know if there's a way to log IP Address of the agent that's making the request. Any help is appreciated. -Thank you Rashmi - To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Is it possible to log IP Address of requestor with custom AccessLogValve pattern?
Hi Rashmi, if there is problem with retrieving correct remote IP address, log4j will not solve problem ... it seems like this: remote user ---(send request) --- your proxy (or maybe you use some connector or forwardor) tomcat if 127.0.0.1, seems your connector or forwardoer is located in the same host as your tomcat sharing same IP address or hostname if not 127.0.0.1, seems the request comes from proxy On 10/30/06, Pid [EMAIL PROTECTED] wrote: Do you have a local proxy between the tomcat instance and the requestor? Rashmi Rubdi wrote: Li, Thanks for the reply. As indicated in your illustration, in your case the remote IP address (IP of the client browser) is correctly displaying. But in my case, for some reason even when my website is accessed remotely it always shows local IP Address (the website's IP address) and not the remote IP address. In other words %a %A %h is translating *always* to 127.0.0.1 68.120.115.43 127.0.0.1 Where 68.120.115.43 is the IP address of the website host and not the client (remote host). The website is hosted on a Tomcat 5.5 which is configured as a virtual host. I wonder if the virtual host setting might be the cause for not logging the actual remote IP address. If I can't get Access Log Valve to log the remote IP address then I might have to try it with Log4J with Commons Logging to log the remote IP address I guess. -Regards Rashmi - Original Message From: Li [EMAIL PROTECTED] To: Tomcat Users List users@tomcat.apache.org Sent: Monday, October 30, 2006 3:25:38 AM Subject: Re: Is it possible to log IP Address of requestor with custom AccessLogValve pattern? what you defined is correct ... a simpler way is using default setting Valve className=org.apache.catalina.valves.AccessLogValve directory=logs prefix=your-site-access-log- suffix=.log pattern=common resolveHosts=false/ the result should be (if you are testing from same host) 127.0.0.1 - - [18/Oct/2006:18:54:48 +0800] GET /site/ HTTP/1.1 200 306 127.0.0.1 - - [18/Oct/2006:18:54:48 +0800] GET /site/Welcome.do HTTP/1.1 200 1775 (if your user testing from remote host) 202.110.6.23 - - [18/Oct/2006:19:03:44 +0800] GET /site/Welcome.do HTTP/1.1 200 8893 ... On 10/30/06, Rashmi Rubdi [EMAIL PROTECTED] wrote: Hello, My site is hosted on Tomcat 5.5 and I'm trying to log the IP Address of search engine bots that crawl the site. After reading the following documentation here, which is written very nicely btw http://tomcat.apache.org/tomcat-5.5-doc/config/valve.html http://tomcat.apache.org/tomcat-5.5-doc/catalina/docs/api/org/apache/catalina/valves/AccessLogValve.html I configured the pattern attribute of AccessLogValve as follows: Valve className=org.apache.catalina.valves.AccessLogValve directory=logs pattern=%a %A %h %H %u %t %r %s %b %{Referer}i %{User-Agent}i prefix=localhost_access_log. resolveHosts=false suffix=.txt / The following is a sample of what gets logged with the above configuration in server.xml . 127.0.0.1 68.120.115.43 127.0.0.1 HTTP/1.1 - [29/Oct/2006:23:50:13 -0800] GET /web/_stylesheet/table.css HTTP/1.1 304 - http://www.website.com/c/a_page.jsp;; Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.7) Gecko/20060909 Firefox/1.5.0.7 The documentation says that %a is Remote IP Address, however 127.0.0.1is being logged instead of the IP Address of the requestor. Is this correct? IMO %a should be the IP Address of the agent that's making the request - ( i.e. the IP Address of a browser or a bot etc). Please let me know if there's a way to log IP Address of the agent that's making the request. Any help is appreciated. -Thank you Rashmi - To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- When we invent time, we invent death.
Re: Is it possible to log IP Address of requestor with custom AccessLogValve pattern?
Hi Li and Pid, Thanks again for your replies. You are right, I also tried printing request.getRemoteAddr() in a JSP, and it always lists 127.0.0.1 As you have suggested my site could be behind a proxy, but I don't know this for sure. I've asked the host provider if this is the case and waiting for a reply. I also use Javascript based logging but that only logs requests coming from a browser and correctly logs the IP address of the requestor however, it does not log search engine bots I guess because bots disable Javascript or can't work with Javascript. -Regards Rashmi - Original Message From: Li [EMAIL PROTECTED] To: Tomcat Users List users@tomcat.apache.org; [EMAIL PROTECTED] Sent: Monday, October 30, 2006 8:39:12 AM Subject: Re: Is it possible to log IP Address of requestor with custom AccessLogValve pattern? Hi Rashmi, if there is problem with retrieving correct remote IP address, log4j will not solve problem ... it seems like this: remote user ---(send request) --- your proxy (or maybe you use some connector or forwardor) tomcat if 127.0.0.1, seems your connector or forwardoer is located in the same host as your tomcat sharing same IP address or hostname if not 127.0.0.1, seems the request comes from proxy On 10/30/06, Pid [EMAIL PROTECTED] wrote: Do you have a local proxy between the tomcat instance and the requestor? Rashmi Rubdi wrote: Li, Thanks for the reply. As indicated in your illustration, in your case the remote IP address (IP of the client browser) is correctly displaying. But in my case, for some reason even when my website is accessed remotely it always shows local IP Address (the website's IP address) and not the remote IP address. In other words %a %A %h is translating *always* to 127.0.0.1 68.120.115.43 127.0.0.1 Where 68.120.115.43 is the IP address of the website host and not the client (remote host). The website is hosted on a Tomcat 5.5 which is configured as a virtual host. I wonder if the virtual host setting might be the cause for not logging the actual remote IP address. If I can't get Access Log Valve to log the remote IP address then I might have to try it with Log4J with Commons Logging to log the remote IP address I guess. -Regards Rashmi - Original Message From: Li [EMAIL PROTECTED] To: Tomcat Users List users@tomcat.apache.org Sent: Monday, October 30, 2006 3:25:38 AM Subject: Re: Is it possible to log IP Address of requestor with custom AccessLogValve pattern? what you defined is correct ... a simpler way is using default setting Valve className=org.apache.catalina.valves.AccessLogValve directory=logs prefix=your-site-access-log- suffix=.log pattern=common resolveHosts=false/ the result should be (if you are testing from same host) 127.0.0.1 - - [18/Oct/2006:18:54:48 +0800] GET /site/ HTTP/1.1 200 306 127.0.0.1 - - [18/Oct/2006:18:54:48 +0800] GET /site/Welcome.do HTTP/1.1 200 1775 (if your user testing from remote host) 202.110.6.23 - - [18/Oct/2006:19:03:44 +0800] GET /site/Welcome.do HTTP/1.1 200 8893 ... On 10/30/06, Rashmi Rubdi [EMAIL PROTECTED] wrote: Hello, My site is hosted on Tomcat 5.5 and I'm trying to log the IP Address of search engine bots that crawl the site. After reading the following documentation here, which is written very nicely btw http://tomcat.apache.org/tomcat-5.5-doc/config/valve.html http://tomcat.apache.org/tomcat-5.5-doc/catalina/docs/api/org/apache/catalina/valves/AccessLogValve.html I configured the pattern attribute of AccessLogValve as follows: Valve className=org.apache.catalina.valves.AccessLogValve directory=logs pattern=%a %A %h %H %u %t %r %s %b %{Referer}i %{User-Agent}i prefix=localhost_access_log. resolveHosts=false suffix=.txt / The following is a sample of what gets logged with the above configuration in server.xml . 127.0.0.1 68.120.115.43 127.0.0.1 HTTP/1.1 - [29/Oct/2006:23:50:13 -0800] GET /web/_stylesheet/table.css HTTP/1.1 304 - http://www.website.com/c/a_page.jsp;;; Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.7) Gecko/20060909 Firefox/1.5.0.7 The documentation says that %a is Remote IP Address, however 127.0.0.1is being logged instead of the IP Address of the requestor. Is this correct? IMO %a should be the IP Address of the agent that's making the request - ( i.e. the IP Address of a browser or a bot etc). Please let me know if there's a way to log IP Address of the agent that's making the request. Any help is appreciated. -Thank you Rashmi - To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands,
Re: Is it possible to log IP Address of requestor with custom AccessLogValve pattern?
I think my web site is behind a proxy, I was told that request.getHeader(x-forwarded-for) should work instead of request.getRemoteAddr() , and it does work when I try it. The site correctly shows the remote client's IP Address. I guess there's no pattern element in Access Log Valve for capturing the x-forwarded-for. I might have to log it with Log4J. Sincerely -Rashmi - Forwarded Message From: Rashmi Rubdi [EMAIL PROTECTED] To: Tomcat Users List users@tomcat.apache.org Sent: Monday, October 30, 2006 5:03:44 PM Subject: Re: Is it possible to log IP Address of requestor with custom AccessLogValve pattern? Hi Li and Pid, Thanks again for your replies. You are right, I also tried printing request.getRemoteAddr() in a JSP, and it always lists 127.0.0.1 As you have suggested my site could be behind a proxy, but I don't know this for sure. I've asked the host provider if this is the case and waiting for a reply. I also use Javascript based logging but that only logs requests coming from a browser and correctly logs the IP address of the requestor however, it does not log search engine bots I guess because bots disable Javascript or can't work with Javascript. -Regards Rashmi - Original Message From: Li [EMAIL PROTECTED] To: Tomcat Users List users@tomcat.apache.org; [EMAIL PROTECTED] Sent: Monday, October 30, 2006 8:39:12 AM Subject: Re: Is it possible to log IP Address of requestor with custom AccessLogValve pattern? Hi Rashmi, if there is problem with retrieving correct remote IP address, log4j will not solve problem ... it seems like this: remote user ---(send request) --- your proxy (or maybe you use some connector or forwardor) tomcat if 127.0.0.1, seems your connector or forwardoer is located in the same host as your tomcat sharing same IP address or hostname if not 127.0.0.1, seems the request comes from proxy On 10/30/06, Pid [EMAIL PROTECTED] wrote: Do you have a local proxy between the tomcat instance and the requestor? Rashmi Rubdi wrote: Li, Thanks for the reply. As indicated in your illustration, in your case the remote IP address (IP of the client browser) is correctly displaying. But in my case, for some reason even when my website is accessed remotely it always shows local IP Address (the website's IP address) and not the remote IP address. In other words %a %A %h is translating *always* to 127.0.0.1 68.120.115.43 127.0.0.1 Where 68.120.115.43 is the IP address of the website host and not the client (remote host). The website is hosted on a Tomcat 5.5 which is configured as a virtual host. I wonder if the virtual host setting might be the cause for not logging the actual remote IP address. If I can't get Access Log Valve to log the remote IP address then I might have to try it with Log4J with Commons Logging to log the remote IP address I guess. -Regards Rashmi - Original Message From: Li [EMAIL PROTECTED] To: Tomcat Users List users@tomcat.apache.org Sent: Monday, October 30, 2006 3:25:38 AM Subject: Re: Is it possible to log IP Address of requestor with custom AccessLogValve pattern? what you defined is correct ... a simpler way is using default setting Valve className=org.apache.catalina.valves.AccessLogValve directory=logs prefix=your-site-access-log- suffix=.log pattern=common resolveHosts=false/ the result should be (if you are testing from same host) 127.0.0.1 - - [18/Oct/2006:18:54:48 +0800] GET /site/ HTTP/1.1 200 306 127.0.0.1 - - [18/Oct/2006:18:54:48 +0800] GET /site/Welcome.do HTTP/1.1 200 1775 (if your user testing from remote host) 202.110.6.23 - - [18/Oct/2006:19:03:44 +0800] GET /site/Welcome.do HTTP/1.1 200 8893 ... On 10/30/06, Rashmi Rubdi [EMAIL PROTECTED] wrote: Hello, My site is hosted on Tomcat 5.5 and I'm trying to log the IP Address of search engine bots that crawl the site. After reading the following documentation here, which is written very nicely btw http://tomcat.apache.org/tomcat-5.5-doc/config/valve.html http://tomcat.apache.org/tomcat-5.5-doc/catalina/docs/api/org/apache/catalina/valves/AccessLogValve.html I configured the pattern attribute of AccessLogValve as follows: Valve className=org.apache.catalina.valves.AccessLogValve directory=logs pattern=%a %A %h %H %u %t %r %s %b %{Referer}i %{User-Agent}i prefix=localhost_access_log. resolveHosts=false suffix=.txt / The following is a sample of what gets logged with the above configuration in server.xml . 127.0.0.1 68.120.115.43 127.0.0.1 HTTP/1.1 - [29/Oct/2006:23:50:13 -0800] GET /web/_stylesheet/table.css HTTP/1.1 304 - http://www.website.com/c/a_page.jsp Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.7) Gecko/20060909 Firefox/1.5.0.7 The
Re: Is it possible to log IP Address of requestor with custom AccessLogValve pattern?
Hi Rashmi, You can creater your own log handler and pack it as jar and put it under tomcat lib dir, modify the loggin.properties file to have your handler work. Also, you can create your own request processor or intercepter to retrieve source ip from header and pass to logger. Regards On 10/31/06, Rashmi Rubdi [EMAIL PROTECTED] wrote: I think my web site is behind a proxy, I was told that request.getHeader(x-forwarded-for) should work instead of request.getRemoteAddr() , and it does work when I try it. The site correctly shows the remote client's IP Address. I guess there's no pattern element in Access Log Valve for capturing the x-forwarded-for. I might have to log it with Log4J. Sincerely -Rashmi - Forwarded Message From: Rashmi Rubdi [EMAIL PROTECTED] To: Tomcat Users List users@tomcat.apache.org Sent: Monday, October 30, 2006 5:03:44 PM Subject: Re: Is it possible to log IP Address of requestor with custom AccessLogValve pattern? Hi Li and Pid, Thanks again for your replies. You are right, I also tried printing request.getRemoteAddr() in a JSP, and it always lists 127.0.0.1 As you have suggested my site could be behind a proxy, but I don't know this for sure. I've asked the host provider if this is the case and waiting for a reply. I also use Javascript based logging but that only logs requests coming from a browser and correctly logs the IP address of the requestor however, it does not log search engine bots I guess because bots disable Javascript or can't work with Javascript. -Regards Rashmi - Original Message From: Li [EMAIL PROTECTED] To: Tomcat Users List users@tomcat.apache.org; [EMAIL PROTECTED] Sent: Monday, October 30, 2006 8:39:12 AM Subject: Re: Is it possible to log IP Address of requestor with custom AccessLogValve pattern? Hi Rashmi, if there is problem with retrieving correct remote IP address, log4j will not solve problem ... it seems like this: remote user ---(send request) --- your proxy (or maybe you use some connector or forwardor) tomcat if 127.0.0.1, seems your connector or forwardoer is located in the same host as your tomcat sharing same IP address or hostname if not 127.0.0.1, seems the request comes from proxy On 10/30/06, Pid [EMAIL PROTECTED] wrote: Do you have a local proxy between the tomcat instance and the requestor? Rashmi Rubdi wrote: Li, Thanks for the reply. As indicated in your illustration, in your case the remote IP address (IP of the client browser) is correctly displaying. But in my case, for some reason even when my website is accessed remotely it always shows local IP Address (the website's IP address) and not the remote IP address. In other words %a %A %h is translating *always* to 127.0.0.1 68.120.115.43 127.0.0.1 Where 68.120.115.43 is the IP address of the website host and not the client (remote host). The website is hosted on a Tomcat 5.5 which is configured as a virtual host. I wonder if the virtual host setting might be the cause for not logging the actual remote IP address. If I can't get Access Log Valve to log the remote IP address then I might have to try it with Log4J with Commons Logging to log the remote IP address I guess. -Regards Rashmi - Original Message From: Li [EMAIL PROTECTED] To: Tomcat Users List users@tomcat.apache.org Sent: Monday, October 30, 2006 3:25:38 AM Subject: Re: Is it possible to log IP Address of requestor with custom AccessLogValve pattern? what you defined is correct ... a simpler way is using default setting Valve className=org.apache.catalina.valves.AccessLogValve directory=logs prefix=your-site-access-log- suffix=.log pattern=common resolveHosts=false/ the result should be (if you are testing from same host) 127.0.0.1 - - [18/Oct/2006:18:54:48 +0800] GET /site/ HTTP/1.1 200 306 127.0.0.1 - - [18/Oct/2006:18:54:48 +0800] GET /site/Welcome.do HTTP/1.1 200 1775 (if your user testing from remote host) 202.110.6.23 - - [18/Oct/2006:19:03:44 +0800] GET /site/Welcome.do HTTP/1.1 200 8893 ... On 10/30/06, Rashmi Rubdi [EMAIL PROTECTED] wrote: Hello, My site is hosted on Tomcat 5.5 and I'm trying to log the IP Address of search engine bots that crawl the site. After reading the following documentation here, which is written very nicely btw http://tomcat.apache.org/tomcat-5.5-doc/config/valve.html http://tomcat.apache.org/tomcat-5.5-doc/catalina/docs/api/org/apache/catalina/valves/AccessLogValve.html I configured the pattern attribute of AccessLogValve as follows: Valve className=org.apache.catalina.valves.AccessLogValve directory=logs pattern=%a %A %h %H %u %t %r %s %b %{Referer}i %{User-Agent}i prefix=localhost_access_log. resolveHosts=false suffix=.txt / The following is a sample of what gets logged
Re: Is it possible to log IP Address of requestor with custom AccessLogValve pattern?
Hi Li, I'm sorry I should have re-referenced the AccessLogValve documentation earlier. I can still get this to work with the AccessLogValve custom pattern itself by adding the request header in this pattern element %{xxx}i , where xxx is the request header. The following also worked, as shown below: Valve className=org.apache.catalina.valves.AccessLogValve directory=logs pattern=%{x-forwarded-for}i; %H %u %t quot;%rquot; %s %b quot;%{Referer}iquot; quot;%{User-Agent}iquot; prefix=localhost_access_log. resolveHosts=false suffix=.txt / May be this kind of setup will slow down the performance of the site, but I'll probably disable the logging after getting an initial sample of search engine bots. Thanks for your suggestions and help, I will keep those in mind. I still need to learn Log4J and logging in general. But for now, this setup is sufficient. -Regards Rashmi - Original Message From: Li [EMAIL PROTECTED] To: Tomcat Users List users@tomcat.apache.org Sent: Monday, October 30, 2006 9:20:50 PM Subject: Re: Is it possible to log IP Address of requestor with custom AccessLogValve pattern? Hi Rashmi, You can creater your own log handler and pack it as jar and put it under tomcat lib dir, modify the loggin.properties file to have your handler work. Also, you can create your own request processor or intercepter to retrieve source ip from header and pass to logger. Regards On 10/31/06, Rashmi Rubdi [EMAIL PROTECTED] wrote: I think my web site is behind a proxy, I was told that request.getHeader(x-forwarded-for) should work instead of request.getRemoteAddr() , and it does work when I try it. The site correctly shows the remote client's IP Address. I guess there's no pattern element in Access Log Valve for capturing the x-forwarded-for. I might have to log it with Log4J. Sincerely -Rashmi - Forwarded Message From: Rashmi Rubdi [EMAIL PROTECTED] To: Tomcat Users List users@tomcat.apache.org Sent: Monday, October 30, 2006 5:03:44 PM Subject: Re: Is it possible to log IP Address of requestor with custom AccessLogValve pattern? Hi Li and Pid, Thanks again for your replies. You are right, I also tried printing request.getRemoteAddr() in a JSP, and it always lists 127.0.0.1 As you have suggested my site could be behind a proxy, but I don't know this for sure. I've asked the host provider if this is the case and waiting for a reply. I also use Javascript based logging but that only logs requests coming from a browser and correctly logs the IP address of the requestor however, it does not log search engine bots I guess because bots disable Javascript or can't work with Javascript. -Regards Rashmi - Original Message From: Li [EMAIL PROTECTED] To: Tomcat Users List users@tomcat.apache.org; [EMAIL PROTECTED] Sent: Monday, October 30, 2006 8:39:12 AM Subject: Re: Is it possible to log IP Address of requestor with custom AccessLogValve pattern? Hi Rashmi, if there is problem with retrieving correct remote IP address, log4j will not solve problem ... it seems like this: remote user ---(send request) --- your proxy (or maybe you use some connector or forwardor) tomcat if 127.0.0.1, seems your connector or forwardoer is located in the same host as your tomcat sharing same IP address or hostname if not 127.0.0.1, seems the request comes from proxy On 10/30/06, Pid [EMAIL PROTECTED] wrote: Do you have a local proxy between the tomcat instance and the requestor? Rashmi Rubdi wrote: Li, Thanks for the reply. As indicated in your illustration, in your case the remote IP address (IP of the client browser) is correctly displaying. But in my case, for some reason even when my website is accessed remotely it always shows local IP Address (the website's IP address) and not the remote IP address. In other words %a %A %h is translating *always* to 127.0.0.1 68.120.115.43 127.0.0.1 Where 68.120.115.43 is the IP address of the website host and not the client (remote host). The website is hosted on a Tomcat 5.5 which is configured as a virtual host. I wonder if the virtual host setting might be the cause for not logging the actual remote IP address. If I can't get Access Log Valve to log the remote IP address then I might have to try it with Log4J with Commons Logging to log the remote IP address I guess. -Regards Rashmi - Original Message From: Li [EMAIL PROTECTED] To: Tomcat Users List users@tomcat.apache.org Sent: Monday, October 30, 2006 3:25:38 AM Subject: Re: Is it possible to log IP Address of requestor with custom AccessLogValve pattern? what you defined is correct ... a simpler way is using default setting Valve className=org.apache.catalina.valves.AccessLogValve directory=logs
Re: Is it possible to log IP Address of requestor with custom AccessLogValve pattern?
Hi Rashmi, Thank you for sharing. Have a nice day. Li On 10/31/06, Rashmi Rubdi [EMAIL PROTECTED] wrote: Hi Li, I'm sorry I should have re-referenced the AccessLogValve documentation earlier. I can still get this to work with the AccessLogValve custom pattern itself by adding the request header in this pattern element %{xxx}i , where xxx is the request header. The following also worked, as shown below: Valve className=org.apache.catalina.valves.AccessLogValve directory=logs pattern=%{x-forwarded-for}i; %H %u %t %r %s %b %{Referer}i %{User-Agent}i prefix=localhost_access_log. resolveHosts=false suffix=.txt / May be this kind of setup will slow down the performance of the site, but I'll probably disable the logging after getting an initial sample of search engine bots. Thanks for your suggestions and help, I will keep those in mind. I still need to learn Log4J and logging in general. But for now, this setup is sufficient. -Regards Rashmi - Original Message From: Li [EMAIL PROTECTED] To: Tomcat Users List users@tomcat.apache.org Sent: Monday, October 30, 2006 9:20:50 PM Subject: Re: Is it possible to log IP Address of requestor with custom AccessLogValve pattern? Hi Rashmi, You can creater your own log handler and pack it as jar and put it under tomcat lib dir, modify the loggin.properties file to have your handler work. Also, you can create your own request processor or intercepter to retrieve source ip from header and pass to logger. Regards On 10/31/06, Rashmi Rubdi [EMAIL PROTECTED] wrote: I think my web site is behind a proxy, I was told that request.getHeader(x-forwarded-for) should work instead of request.getRemoteAddr() , and it does work when I try it. The site correctly shows the remote client's IP Address. I guess there's no pattern element in Access Log Valve for capturing the x-forwarded-for. I might have to log it with Log4J. Sincerely -Rashmi - Forwarded Message From: Rashmi Rubdi [EMAIL PROTECTED] To: Tomcat Users List users@tomcat.apache.org Sent: Monday, October 30, 2006 5:03:44 PM Subject: Re: Is it possible to log IP Address of requestor with custom AccessLogValve pattern? Hi Li and Pid, Thanks again for your replies. You are right, I also tried printing request.getRemoteAddr() in a JSP, and it always lists 127.0.0.1 As you have suggested my site could be behind a proxy, but I don't know this for sure. I've asked the host provider if this is the case and waiting for a reply. I also use Javascript based logging but that only logs requests coming from a browser and correctly logs the IP address of the requestor however, it does not log search engine bots I guess because bots disable Javascript or can't work with Javascript. -Regards Rashmi - Original Message From: Li [EMAIL PROTECTED] To: Tomcat Users List users@tomcat.apache.org; [EMAIL PROTECTED] Sent: Monday, October 30, 2006 8:39:12 AM Subject: Re: Is it possible to log IP Address of requestor with custom AccessLogValve pattern? Hi Rashmi, if there is problem with retrieving correct remote IP address, log4j will not solve problem ... it seems like this: remote user ---(send request) --- your proxy (or maybe you use some connector or forwardor) tomcat if 127.0.0.1, seems your connector or forwardoer is located in the same host as your tomcat sharing same IP address or hostname if not 127.0.0.1, seems the request comes from proxy On 10/30/06, Pid [EMAIL PROTECTED] wrote: Do you have a local proxy between the tomcat instance and the requestor? Rashmi Rubdi wrote: Li, Thanks for the reply. As indicated in your illustration, in your case the remote IP address (IP of the client browser) is correctly displaying. But in my case, for some reason even when my website is accessed remotely it always shows local IP Address (the website's IP address) and not the remote IP address. In other words %a %A %h is translating *always* to 127.0.0.1 68.120.115.43 127.0.0.1 Where 68.120.115.43 is the IP address of the website host and not the client (remote host). The website is hosted on a Tomcat 5.5 which is configured as a virtual host. I wonder if the virtual host setting might be the cause for not logging the actual remote IP address. If I can't get Access Log Valve to log the remote IP address then I might have to try it with Log4J with Commons Logging to log the remote IP address I guess. -Regards Rashmi - Original Message From: Li [EMAIL PROTECTED] To: Tomcat Users List users@tomcat.apache.org Sent: Monday, October 30, 2006 3:25:38 AM Subject: Re: Is it possible to log IP Address of requestor with custom AccessLogValve pattern? what you defined is correct ... a simpler way is using default setting Valve className= org.apache.catalina.valves.AccessLogValve
Re: Is it possible to log IP Address of requestor with custom AccessLogValve pattern?
Hi Rashmi, What you use is ok, but it wont work for every case, in case of no proxy used, %{x-forwarded-for}i; may not work ... Regards On 10/31/06, Li [EMAIL PROTECTED] wrote: Hi Rashmi, Thank you for sharing. Have a nice day. Li On 10/31/06, Rashmi Rubdi [EMAIL PROTECTED] wrote: Hi Li, I'm sorry I should have re-referenced the AccessLogValve documentation earlier. I can still get this to work with the AccessLogValve custom pattern itself by adding the request header in this pattern element %{xxx}i , where xxx is the request header. The following also worked, as shown below: Valve className=org.apache.catalina.valves.AccessLogValve directory=logs pattern=%{x-forwarded-for}i; %H %u %t %r %s %b %{Referer}i %{User-Agent}i prefix=localhost_access_log. resolveHosts=false suffix=.txt / May be this kind of setup will slow down the performance of the site, but I'll probably disable the logging after getting an initial sample of search engine bots. Thanks for your suggestions and help, I will keep those in mind. I still need to learn Log4J and logging in general. But for now, this setup is sufficient. -Regards Rashmi - Original Message From: Li [EMAIL PROTECTED] To: Tomcat Users List users@tomcat.apache.org Sent: Monday, October 30, 2006 9:20:50 PM Subject: Re: Is it possible to log IP Address of requestor with custom AccessLogValve pattern? Hi Rashmi, You can creater your own log handler and pack it as jar and put it under tomcat lib dir, modify the loggin.properties file to have your handler work. Also, you can create your own request processor or intercepter to retrieve source ip from header and pass to logger. Regards On 10/31/06, Rashmi Rubdi [EMAIL PROTECTED] wrote: I think my web site is behind a proxy, I was told that request.getHeader(x-forwarded-for) should work instead of request.getRemoteAddr() , and it does work when I try it. The site correctly shows the remote client's IP Address. I guess there's no pattern element in Access Log Valve for capturing the x-forwarded-for. I might have to log it with Log4J. Sincerely -Rashmi - Forwarded Message From: Rashmi Rubdi [EMAIL PROTECTED] To: Tomcat Users List users@tomcat.apache.org Sent: Monday, October 30, 2006 5:03:44 PM Subject: Re: Is it possible to log IP Address of requestor with custom AccessLogValve pattern? Hi Li and Pid, Thanks again for your replies. You are right, I also tried printing request.getRemoteAddr() in a JSP, and it always lists 127.0.0.1 As you have suggested my site could be behind a proxy, but I don't know this for sure. I've asked the host provider if this is the case and waiting for a reply. I also use Javascript based logging but that only logs requests coming from a browser and correctly logs the IP address of the requestor however, it does not log search engine bots I guess because bots disable Javascript or can't work with Javascript. -Regards Rashmi - Original Message From: Li [EMAIL PROTECTED] To: Tomcat Users List users@tomcat.apache.org; [EMAIL PROTECTED] Sent: Monday, October 30, 2006 8:39:12 AM Subject: Re: Is it possible to log IP Address of requestor with custom AccessLogValve pattern? Hi Rashmi, if there is problem with retrieving correct remote IP address, log4j will not solve problem ... it seems like this: remote user ---(send request) --- your proxy (or maybe you use some connector or forwardor) tomcat if 127.0.0.1, seems your connector or forwardoer is located in the same host as your tomcat sharing same IP address or hostname if not 127.0.0.1, seems the request comes from proxy On 10/30/06, Pid [EMAIL PROTECTED] wrote: Do you have a local proxy between the tomcat instance and the requestor? Rashmi Rubdi wrote: Li, Thanks for the reply. As indicated in your illustration, in your case the remote IP address (IP of the client browser) is correctly displaying. But in my case, for some reason even when my website is accessed remotely it always shows local IP Address (the website's IP address) and not the remote IP address. In other words %a %A %h is translating *always* to 127.0.0.1 68.120.115.43 127.0.0.1 Where 68.120.115.43 is the IP address of the website host and not the client (remote host). The website is hosted on a Tomcat 5.5 which is configured as a virtual host. I wonder if the virtual host setting might be the cause for not logging the actual remote IP address. If I can't get Access Log Valve to log the remote IP address then I might have to try it with Log4J with Commons Logging to log the remote IP address I guess. -Regards Rashmi - Original Message From: Li [EMAIL PROTECTED] To: Tomcat
Re: Is it possible to log IP Address of requestor with custom AccessLogValve pattern?
Hi Li, In my case my *website* itself is behind a proxy, that's why no matter who (remote or local) made the request it always shows the local IP 127.0.0.1, I have no choice but to use the x-forwarded-for header. As long as the site is behind a proxy I'll have to settle with x-forwarded-for . If my host provider removes the proxy then only I can use %a and %h. But in your case your *website* is not behind a proxy, that's why %{x-forwarded-for}i doesn't work for you , I think. So in your case simply using %a and/or %h is sufficient. I think %{x-forwarded-for}i could also be used to capture the IP Address of a *client* that's behind a proxy, but I haven't tested this. -Regards Rashmi - Original Message From: Li [EMAIL PROTECTED] To: Tomcat Users List users@tomcat.apache.org Sent: Monday, October 30, 2006 11:23:34 PM Subject: Re: Is it possible to log IP Address of requestor with custom AccessLogValve pattern? Hi Rashmi, What you use is ok, but it wont work for every case, in case of no proxy used, %{x-forwarded-for}i; may not work ... Regards On 10/31/06, Li [EMAIL PROTECTED] wrote: Hi Rashmi, Thank you for sharing. Have a nice day. Li On 10/31/06, Rashmi Rubdi [EMAIL PROTECTED] wrote: Hi Li, I'm sorry I should have re-referenced the AccessLogValve documentation earlier. I can still get this to work with the AccessLogValve custom pattern itself by adding the request header in this pattern element %{xxx}i , where xxx is the request header. The following also worked, as shown below: Valve className=org.apache.catalina.valves.AccessLogValve directory=logs pattern=%{x-forwarded-for}i; %H %u %t %r %s %b %{Referer}i %{User-Agent}i prefix=localhost_access_log. resolveHosts=false suffix=.txt / May be this kind of setup will slow down the performance of the site, but I'll probably disable the logging after getting an initial sample of search engine bots. Thanks for your suggestions and help, I will keep those in mind. I still need to learn Log4J and logging in general. But for now, this setup is sufficient. -Regards Rashmi - Original Message From: Li [EMAIL PROTECTED] To: Tomcat Users List users@tomcat.apache.org Sent: Monday, October 30, 2006 9:20:50 PM Subject: Re: Is it possible to log IP Address of requestor with custom AccessLogValve pattern? Hi Rashmi, You can creater your own log handler and pack it as jar and put it under tomcat lib dir, modify the loggin.properties file to have your handler work. Also, you can create your own request processor or intercepter to retrieve source ip from header and pass to logger. Regards On 10/31/06, Rashmi Rubdi [EMAIL PROTECTED] wrote: I think my web site is behind a proxy, I was told that request.getHeader(x-forwarded-for) should work instead of request.getRemoteAddr() , and it does work when I try it. The site correctly shows the remote client's IP Address. I guess there's no pattern element in Access Log Valve for capturing the x-forwarded-for. I might have to log it with Log4J. Sincerely -Rashmi - Forwarded Message From: Rashmi Rubdi [EMAIL PROTECTED] To: Tomcat Users List users@tomcat.apache.org Sent: Monday, October 30, 2006 5:03:44 PM Subject: Re: Is it possible to log IP Address of requestor with custom AccessLogValve pattern? Hi Li and Pid, Thanks again for your replies. You are right, I also tried printing request.getRemoteAddr() in a JSP, and it always lists 127.0.0.1 As you have suggested my site could be behind a proxy, but I don't know this for sure. I've asked the host provider if this is the case and waiting for a reply. I also use Javascript based logging but that only logs requests coming from a browser and correctly logs the IP address of the requestor however, it does not log search engine bots I guess because bots disable Javascript or can't work with Javascript. -Regards Rashmi - Original Message From: Li [EMAIL PROTECTED] To: Tomcat Users List users@tomcat.apache.org; [EMAIL PROTECTED] Sent: Monday, October 30, 2006 8:39:12 AM Subject: Re: Is it possible to log IP Address of requestor with custom AccessLogValve pattern? Hi Rashmi, if there is problem with retrieving correct remote IP address, log4j will not solve problem ... it seems like this: remote user ---(send request) --- your proxy (or maybe you use some connector or forwardor) tomcat if 127.0.0.1, seems your connector or forwardoer is located in the same host as your tomcat sharing same IP address or hostname if not 127.0.0.1, seems the request comes from proxy On 10/30/06, Pid [EMAIL PROTECTED] wrote: Do you have a local proxy between the tomcat instance and the requestor?
Re: Is it possible to log IP Address of requestor with custom AccessLogValve pattern?
Hi, I am using my own log handler which is application server independent. the pattern you use for dealing with proxy is ok, in some case, we try to find an approach to be adaptive for both cases that with or without proxy. It's good to hear that you solve your problem. Li On 10/31/06, Rashmi Rubdi [EMAIL PROTECTED] wrote: Hi Li, In my case my *website* itself is behind a proxy, that's why no matter who (remote or local) made the request it always shows the local IP 127.0.0.1, I have no choice but to use the x-forwarded-for header. As long as the site is behind a proxy I'll have to settle with x-forwarded-for . If my host provider removes the proxy then only I can use %a and %h. But in your case your *website* is not behind a proxy, that's why %{x-forwarded-for}i doesn't work for you , I think. So in your case simply using %a and/or %h is sufficient. I think %{x-forwarded-for}i could also be used to capture the IP Address of a *client* that's behind a proxy, but I haven't tested this. -Regards Rashmi - Original Message From: Li [EMAIL PROTECTED] To: Tomcat Users List users@tomcat.apache.org Sent: Monday, October 30, 2006 11:23:34 PM Subject: Re: Is it possible to log IP Address of requestor with custom AccessLogValve pattern? Hi Rashmi, What you use is ok, but it wont work for every case, in case of no proxy used, %{x-forwarded-for}i; may not work ... Regards On 10/31/06, Li [EMAIL PROTECTED] wrote: Hi Rashmi, Thank you for sharing. Have a nice day. Li On 10/31/06, Rashmi Rubdi [EMAIL PROTECTED] wrote: Hi Li, I'm sorry I should have re-referenced the AccessLogValve documentation earlier. I can still get this to work with the AccessLogValve custom pattern itself by adding the request header in this pattern element %{xxx}i , where xxx is the request header. The following also worked, as shown below: Valve className=org.apache.catalina.valves.AccessLogValve directory=logs pattern=%{x-forwarded-for}i; %H %u %t %r %s %b %{Referer}i %{User-Agent}i prefix=localhost_access_log. resolveHosts=false suffix=.txt / May be this kind of setup will slow down the performance of the site, but I'll probably disable the logging after getting an initial sample of search engine bots. Thanks for your suggestions and help, I will keep those in mind. I still need to learn Log4J and logging in general. But for now, this setup is sufficient. -Regards Rashmi - Original Message From: Li [EMAIL PROTECTED] To: Tomcat Users List users@tomcat.apache.org Sent: Monday, October 30, 2006 9:20:50 PM Subject: Re: Is it possible to log IP Address of requestor with custom AccessLogValve pattern? Hi Rashmi, You can creater your own log handler and pack it as jar and put it under tomcat lib dir, modify the loggin.properties file to have your handler work. Also, you can create your own request processor or intercepter to retrieve source ip from header and pass to logger. Regards On 10/31/06, Rashmi Rubdi [EMAIL PROTECTED] wrote: I think my web site is behind a proxy, I was told that request.getHeader(x-forwarded-for) should work instead of request.getRemoteAddr() , and it does work when I try it. The site correctly shows the remote client's IP Address. I guess there's no pattern element in Access Log Valve for capturing the x-forwarded-for. I might have to log it with Log4J. Sincerely -Rashmi - Forwarded Message From: Rashmi Rubdi [EMAIL PROTECTED] To: Tomcat Users List users@tomcat.apache.org Sent: Monday, October 30, 2006 5:03:44 PM Subject: Re: Is it possible to log IP Address of requestor with custom AccessLogValve pattern? Hi Li and Pid, Thanks again for your replies. You are right, I also tried printing request.getRemoteAddr() in a JSP, and it always lists 127.0.0.1 As you have suggested my site could be behind a proxy, but I don't know this for sure. I've asked the host provider if this is the case and waiting for a reply. I also use Javascript based logging but that only logs requests coming from a browser and correctly logs the IP address of the requestor however, it does not log search engine bots I guess because bots disable Javascript or can't work with Javascript. -Regards Rashmi - Original Message From: Li [EMAIL PROTECTED] To: Tomcat Users List users@tomcat.apache.org; [EMAIL PROTECTED] Sent: Monday, October 30, 2006 8:39:12 AM Subject: Re: Is it possible to log IP Address of requestor with custom AccessLogValve pattern? Hi Rashmi, if there is problem with retrieving correct remote IP address, log4j will not solve problem ... it seems like this: remote user ---(send request) --- your proxy (or maybe you use some connector or forwardor) tomcat if