📄 requestlogger.java
字号:
{ RequestData rd = getCurrentRequest(); if (value instanceof Session) { rd.addEntry("Session created"); } else if (value instanceof Page) { Page page = (Page)value; rd.addEntry("Page created, id: " + page.getId() + ", class:" + page.getClass()); } else if (value instanceof IPageMap) { IPageMap map = (IPageMap)value; rd.addEntry("PageMap created, name: " + (map.getName() == null ? "DEFAULT" : map.getName())); } else { rd.addEntry("Custom object created: " + value); } } /** * @see org.apache.wicket.protocol.http.IRequestLogger#logResponseTarget(org.apache.wicket.IRequestTarget) */ public void logResponseTarget(IRequestTarget target) { getCurrentRequest().addResponseTarget(getRequestTargetString(target)); } /** * @see org.apache.wicket.protocol.http.IRequestLogger#logEventTarget(org.apache.wicket.IRequestTarget) */ public void logEventTarget(IRequestTarget target) { getCurrentRequest().addEventTarget(getRequestTargetString(target)); } /** * @param target * @return The request target nice display string */ private String getRequestTargetString(IRequestTarget target) { AppendingStringBuffer sb = new AppendingStringBuffer(128); if (target instanceof IListenerInterfaceRequestTarget) { IListenerInterfaceRequestTarget listener = (IListenerInterfaceRequestTarget)target; sb.append("Interface[target:"); sb.append(Classes.simpleName(listener.getTarget().getClass())); sb.append("("); sb.append(listener.getTarget().getPageRelativePath()); sb.append("), page: "); sb.append(listener.getPage().getClass().getName()); sb.append("("); sb.append(listener.getPage().getId()); sb.append("), interface: "); sb.append(listener.getRequestListenerInterface().getName()); sb.append("."); sb.append(listener.getRequestListenerInterface().getMethod().getName()); sb.append("]"); } else if (target instanceof IPageRequestTarget) { IPageRequestTarget pageRequestTarget = (IPageRequestTarget)target; sb.append("PageRequest["); sb.append(pageRequestTarget.getPage().getClass().getName()); sb.append("("); sb.append(pageRequestTarget.getPage().getId()); sb.append(")]"); } else if (target instanceof IBookmarkablePageRequestTarget) { IBookmarkablePageRequestTarget pageRequestTarget = (IBookmarkablePageRequestTarget)target; sb.append("BookmarkablePage["); sb.append(pageRequestTarget.getPageClass().getName()); sb.append("]"); } else if (target instanceof ISharedResourceRequestTarget) { ISharedResourceRequestTarget sharedResourceTarget = (ISharedResourceRequestTarget)target; sb.append("SharedResource["); sb.append(sharedResourceTarget.getResourceKey()); sb.append("]"); } else { sb.append(target.toString()); } return sb.toString(); } /** * This class hold the information one request of a session has. * * @author jcompagner */ public static class SessionData implements IClusterable, Comparable { private static final long serialVersionUID = 1L; private final String sessionId; private final long startDate; private long lastActive; private long numberOfRequests; private long totalTimeTaken; private long sessionSize; private Object sessionInfo; /** * Construct. * * @param sessionId */ public SessionData(String sessionId) { this.sessionId = sessionId; startDate = System.currentTimeMillis(); numberOfRequests = 1; } /** * @return The last active date. */ public Date getLastActive() { return new Date(lastActive); } /** * @return The start date of this session */ public Date getStartDate() { return new Date(startDate); } /** * @return The number of request for this session */ public long getNumberOfRequests() { return numberOfRequests; } /** * @return Returns the session size. */ public long getSessionSize() { return sessionSize; } /** * @return Returns the total time this session has spent. */ public long getTotalTimeTaken() { return totalTimeTaken; } /** * @return The session info object given by the {@link ISessionLogInfo#getSessionInfo()} * session method. */ public Object getSessionInfo() { return sessionInfo; } /** * @return The session id */ public String getSessionId() { return sessionId; } void addTimeTaken(long time) { lastActive = System.currentTimeMillis(); numberOfRequests++; totalTimeTaken += time; } void setSessionInfo(Object sessionInfo) { this.sessionInfo = sessionInfo; } void setSessionSize(long size) { sessionSize = size; } public int compareTo(Object sd) { return (int)(((SessionData)sd).lastActive - lastActive); } } /** * This class hold the information one request of a session has. * * @author jcompagner */ public static class RequestData implements IClusterable { private static final long serialVersionUID = 1L; private long startDate; private long timeTaken; private final List entries = new ArrayList(5); private String eventTarget; private String responseTarget; private String sessionId; private long totalSessionSize; private Object sessionInfo; private int activeRequest; /** * @return The time taken for this request */ public Long getTimeTaken() { return new Long(timeTaken); } /** * @param activeRequest * The number of active request when this request happened */ public void setActiveRequest(int activeRequest) { this.activeRequest = activeRequest; } /** * @return The number of active request when this request happened */ public int getActiveRequest() { return activeRequest; } /** * @return The session object info, created by {@link ISessionLogInfo#getSessionInfo()} */ public Object getSessionInfo() { return sessionInfo; } /** * Set the session info object of the session for this request. * * @param sessionInfo */ public void setSessionInfo(Object sessionInfo) { this.sessionInfo = sessionInfo; } /** * @param sizeInBytes */ public void setSessionSize(long sizeInBytes) { totalSessionSize = sizeInBytes; } /** * @param id */ public void setSessionId(String id) { sessionId = id; } /** * @return The time taken for this request */ public Date getStartDate() { return new Date(startDate); } /** * @return The event target string */ public String getEventTarget() { return eventTarget; } /** * @return The response target string */ public String getResponseTarget() { return responseTarget; } /** * @param target */ public void addResponseTarget(String target) { responseTarget = target; } /** * @param target */ public void addEventTarget(String target) { eventTarget = target; } /** * @param timeTaken */ public void setTimeTaken(long timeTaken) { this.timeTaken = timeTaken; startDate = System.currentTimeMillis() - timeTaken; } /** * @param string */ public void addEntry(String string) { entries.add(string); } /** * @return All entries of the objects that are created/updated or removed in this request */ public String getAlteredObjects() { AppendingStringBuffer sb = new AppendingStringBuffer(); for (int i = 0; i < entries.size(); i++) { String element = (String)entries.get(i); sb.append(element); if (entries.size() != i + 1) { sb.append("<br/>"); } } return sb.toString(); } /** * @return The session id for this request */ public String getSessionId() { return sessionId; } /** * @return The total session size. */ public Long getSessionSize() { return new Long(totalSessionSize); } public String toString() { return "Request[timetaken=" + getTimeTaken() + ",sessioninfo=" + sessionInfo + ",sessionid=" + sessionId + ",sessionsize=" + totalSessionSize + ",request=" + eventTarget + ",response=" + responseTarget + ",alteredobjects=" + getAlteredObjects() + ",activerequest=" + activeRequest + "]"; } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -