package de.flower.common.ui.util; import javax.servlet.http.HttpServletRequest; import org.apache.wicket.protocol.http.WebSession; import org.apache.wicket.protocol.http.request.WebClientInfo; import org.apache.wicket.protocol.http.servlet.ErrorAttributes; import org.apache.wicket.protocol.http.servlet.ForwardAttributes; import org.apache.wicket.request.Request; /** * @author flowerrrr */ public class LoggingUtils { public static String toString(Request request) { try { HttpServletRequest servletRequest = (HttpServletRequest) request.getContainerRequest(); ErrorAttributes errorAttributes = ErrorAttributes.of(servletRequest); ForwardAttributes forwardAttributes = ForwardAttributes.of(servletRequest); String s = String.format("url [%s], referer [%s]", request.getUrl(), servletRequest.getHeader("referer")); if (errorAttributes != null) { s += ", " + errorAttributes.toString(); } if (forwardAttributes != null) { s += ", " + forwardAttributes.toString(); } final WebClientInfo clientInfo = WebSession.get().getClientInfo(); s += ", " + String.format("User-Agent: %s, RemoteAddress: %s", clientInfo.getUserAgent(), clientInfo.getProperties().getRemoteAddress()); return s; } catch (RuntimeException e) { return e.toString(); } } }