WSO2IS将客户端IP记录到文件wso2carbon.log

时间:2016-07-04 13:07:15

标签: wso2 wso2is wso2carbon

我有一个环境,其中WSO2IS位于平衡器之后,并且希望客户端IP也可以登录到http_access.log文件之外的文件wso2carbon.log。

2 个答案:

答案 0 :(得分:0)

在应用程序日志中我们需要手动解析值以进行记录。您将从请求中获取IP地址。您可以将其添加到Thread local并将其配置为模式布局[5]。

   String ipAddress = request.getHeader("X-FORWARDED-FOR");  
   if (ipAddress == null) {  
       ipAddress = request.getRemoteAddr();  
   }

您可以使用请求标题“X-Forwarded-For”[1]。

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="${carbon.home}/repository/logs"
               prefix="http_access_management_console_" suffix=".log"
               pattern="%{X-Forwarded-For}i %h %l %u %t &quot;%r&quot; %s %b &quot;%{Referer}i&quot; &quot;%{User-Agent}i&quot;" />

[2]

[1]。https://tomcat.apache.org/tomcat-7.0-doc/config/valve.html#Proxies_Support [2]。https://docs.wso2.com/display/ESB490/Access+Logs

[3]。http://tomcat.apache.org/tomcat-6.0-doc/config/valve.html#Access_Log_Valve

[4]。http://www.techstacks.com/howto/configure-access-logging-in-tomcat.html [5]。https://logging.apache.org/log4j/2.x/manual/thread-context.html

答案 1 :(得分:0)

如果您可以以编程方式获取用户的IP,则可以编写用户操作事件监听器[1]并打印日志。样本在[2]中。

[1] http://tharindue.blogspot.com/2016/08/user-operation-event-listener-in-wso2.html [2] http://tharindue.blogspot.com/2016/08/writing-user-operation-event-listener.html