Ich habe eine Umgebung, in der WSO2IS hinter einem Balancer ist und möchten, dass die Client-IP auch in der Datei wso2carbon.log über die Datei http_access.log hinaus protokolliert wird.WSO2IS Logging Client IP in Datei wso2carbon.log
Antwort
Im Anwendungsprotokoll müssen wir den zu protokollierenden Wert manuell analysieren. Sie erhalten die IP-Adresse von der Anfrage. Sie können dies Thread lokal hinzufügen und es als Musterlayout [5] konfigurieren.
String ipAddress = request.getHeader("X-FORWARDED-FOR");
if (ipAddress == null) {
ipAddress = request.getRemoteAddr();
}
Sie können den Anforderungsheader "X-Forwarded-For" [1] verwenden.
<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 "%r" %s %b "%{Referer}i" "%{User-Agent}i"" />
[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
Wenn Sie programmgesteuert die IP des Benutzers abrufen können, können Sie einen User Operation Event Listener [1] schreiben und Protokolle drucken. Eine Probe ist in [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
@Poorman, Thank you! Aber was ich brauche, ist in der Datei wso2carbon.log automatisch angemeldet zu sein, ich hatte diese Dokumentation gesucht, konnte aber nicht erreichen, was ich wollte. – Naka
Ich glaube nicht, dass Sie es schaffen können, indem Sie es konfigurieren. Du solltest einen wie in [5] implementieren – Poornan