/**
* Logback: the reliable, generic, fast and flexible logging framework.
* Copyright (C) 1999-2015, QOS.ch. All rights reserved.
*
* This program and the accompanying materials are dual-licensed under
* either the terms of the Eclipse Public License v1.0 as published by
* the Eclipse Foundation
*
* or (per the licensee's choosing)
*
* under the terms of the GNU Lesser General Public License version 2.1
* as published by the Free Software Foundation.
*/
package ch.qos.logback.access.spi;
import ch.qos.logback.core.spi.DeferredProcessingAware;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Enumeration;
import java.util.List;
import java.util.Map;
// Contributors: Joern Huxhorn (see also bug #110)
/**
* The Access module's internal representation of logging events. When the
* logging component instance is called in the container to log then a
* <code>AccessEvent</code> instance is created. This instance is passed
* around to the different logback components.
*
* @author Ceki Gülcü
* @author Sébastien Pennec
* @author Jörn Huxhorn
*/
public interface IAccessEvent extends DeferredProcessingAware {
String NA = "-";
int SENTINEL = -1;
/**
* Returns the underlying HttpServletRequest. After serialization the returned
* value will be null.
*
* @return
*/
HttpServletRequest getRequest();
/**
* Returns the underlying HttpServletResponse. After serialization the returned
* value will be null.
*
* @return
*/
HttpServletResponse getResponse();
/**
* The number of milliseconds elapsed from 1/1/1970 until logging event was
* created.
*/
long getTimeStamp();
/**
* The time elapsed between receiving the request and logging it in milliseconds.
*/
long getElapsedTime();
/**
* The number of seconds elapsed between receiving the request and logging it.
*/
long getElapsedSeconds();
String getRequestURI();
/**
* The first line of the request.
*/
String getRequestURL();
String getRemoteHost();
String getRemoteUser();
String getProtocol();
String getMethod();
String getServerName();
String getSessionID();
void setThreadName(String threadName);
String getThreadName();
String getQueryString();
String getRemoteAddr();
String getRequestHeader(String key);
Enumeration<String> getRequestHeaderNames();
Map<String, String> getRequestHeaderMap();
Map<String, String[]> getRequestParameterMap();
String getAttribute(String key);
String[] getRequestParameter(String key);
String getCookie(String key);
long getContentLength();
int getStatusCode();
String getRequestContent();
String getResponseContent();
int getLocalPort();
ServerAdapter getServerAdapter();
String getResponseHeader(String key);
Map<String, String> getResponseHeaderMap();
List<String> getResponseHeaderNameList();
}