|
Logback API Version 0.9.8 |
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectch.qos.logback.core.ContextBase
ch.qos.logback.access.jetty.RequestLogImpl
public class RequestLogImpl
This class is logback's implementation of jetty's RequestLog interface.
It can be seen as logback classic's LoggerContext. Appenders can be attached directly to RequestLogImpl and RequestLogImpl uses the same StatusManager as LoggerContext does. It also provides containers for properties.
To configure jetty in order to use RequestLogImpl, the following lines must be added to the jetty configuration file, namely etc/jetty.xml:
<Ref id="requestLog">
<Set name="requestLog">
<New id="requestLogImpl" class="ch.qos.logback.access.jetty.RequestLogImpl"></New>
</Set>
</Ref>
By default, RequestLogImpl looks for a logback configuration file called
logback-access.xml, in the same folder where jetty.xml is located, that is
etc/logback-access.xml. The logback-access.xml file is slightly
different than the usual logback classic configuration file. Most of it is
the same: Appenders and Layouts are declared the exact same way. However,
loggers elements are not allowed.
It is possible to put the logback configuration file anywhere, as long as it's path is specified. Here is another example, with a path to the logback-access.xml file.
<Ref id="requestLog">
<Set name="requestLog">
<New id="requestLogImpl" class="ch.qos.logback.access.jetty.RequestLogImpl"></New>
<Set name="fileName">path/to/logback.xml</Set>
</Set>
</Ref>
Here is a sample logback-access.xml file that can be used right away:
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.access.PatternLayout">
<param name="Pattern" value="%date %server %remoteIP %clientHost %user %requestURL" />
</layout>
</appender>
<appender-ref ref="STDOUT" />
</configuration>
Another configuration file, using SMTPAppender, could be:
<configuration>
<appender name="SMTP" class="ch.qos.logback.access.net.SMTPAppender">
<layout class="ch.qos.logback.access.PatternLayout">
<param name="pattern" value="%remoteIP [%date] %requestURL %statusCode %bytesSent" />
</layout>
<param name="From" value="sender@domaine.org" />
<param name="SMTPHost" value="mail.domain.org" />
<param name="Subject" value="Last Event: %statusCode %requestURL" />
<param name="To" value="server_admin@domain.org" />
</appender>
<appender-ref ref="SMTP" />
</configuration>
A special, module-specific implementation of PatternLayout was implemented to
allow http-specific patterns to be used. The
PatternLayout provides a way to format the
logging output that is just as easy and flexible as the usual PatternLayout.
For more information about the general use of a PatternLayout, please refer
to logback classic's PatternLayout. For
information about logback access' specific PatternLayout, please refer to
it's javadoc.
| Field Summary | |
|---|---|
static String |
DEFAULT_CONFIG_FILE
|
| Constructor Summary | |
|---|---|
RequestLogImpl()
|
|
| Method Summary | |
|---|---|
void |
addAppender(Appender<AccessEvent> newAppender)
Add an appender. |
void |
addFilter(Filter newFilter)
Add a filter. |
void |
clearAllFilters()
|
void |
detachAndStopAllAppenders()
Detach all previously added appenders. |
boolean |
detachAppender(Appender<AccessEvent> appender)
Detach the appender passed as parameter from the list of appenders. |
Appender<AccessEvent> |
detachAppender(String name)
Detach the appender with the name passed as parameter from the list of appenders. |
Appender<AccessEvent> |
getAppender(String name)
Get an appender by name. |
FilterReply |
getFilterChainDecision(Object event)
Loop through the filters in the chain. |
Filter |
getFirstFilter()
Get first filter in the chain. |
boolean |
isAttached(Appender appender)
Returns true if the specified appender is in list of
attached attached, false otherwise. |
boolean |
isFailed()
|
boolean |
isRunning()
|
boolean |
isStarted()
|
boolean |
isStarting()
|
boolean |
isStopped()
|
boolean |
isStopping()
|
Iterator |
iteratorForAppenders()
Get an iterator for appenders contained in the parent object. |
void |
log(org.mortbay.jetty.Request jettyRequest,
org.mortbay.jetty.Response jettyResponse)
|
void |
setFileName(String filename)
|
void |
start()
|
void |
stop()
|
| Methods inherited from class ch.qos.logback.core.ContextBase |
|---|
getName, getObject, getProperty, getPropertyMap, getStatusManager, putObject, setName, setProperty |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final String DEFAULT_CONFIG_FILE
| Constructor Detail |
|---|
public RequestLogImpl()
| Method Detail |
|---|
public void log(org.mortbay.jetty.Request jettyRequest,
org.mortbay.jetty.Response jettyResponse)
log in interface org.mortbay.jetty.RequestLogpublic void start()
start in interface org.mortbay.component.LifeCyclepublic void stop()
stop in interface org.mortbay.component.LifeCyclepublic boolean isRunning()
isRunning in interface org.mortbay.component.LifeCyclepublic void setFileName(String filename)
public boolean isStarted()
isStarted in interface org.mortbay.component.LifeCyclepublic boolean isStarting()
isStarting in interface org.mortbay.component.LifeCyclepublic boolean isStopping()
isStopping in interface org.mortbay.component.LifeCyclepublic boolean isStopped()
isStopped in interface org.mortbay.component.LifeCyclepublic boolean isFailed()
isFailed in interface org.mortbay.component.LifeCyclepublic void addAppender(Appender<AccessEvent> newAppender)
AppenderAttachable
addAppender in interface AppenderAttachable<AccessEvent>public Iterator iteratorForAppenders()
AppenderAttachable
iteratorForAppenders in interface AppenderAttachable<AccessEvent>public Appender<AccessEvent> getAppender(String name)
AppenderAttachable
getAppender in interface AppenderAttachable<AccessEvent>public boolean isAttached(Appender appender)
AppenderAttachabletrue if the specified appender is in list of
attached attached, false otherwise.
isAttached in interface AppenderAttachable<AccessEvent>public void detachAndStopAllAppenders()
AppenderAttachable
detachAndStopAllAppenders in interface AppenderAttachable<AccessEvent>public boolean detachAppender(Appender<AccessEvent> appender)
AppenderAttachable
detachAppender in interface AppenderAttachable<AccessEvent>public Appender<AccessEvent> detachAppender(String name)
AppenderAttachable
detachAppender in interface AppenderAttachable<AccessEvent>public void addFilter(Filter newFilter)
FilterAttachable
addFilter in interface FilterAttachablepublic void clearAllFilters()
clearAllFilters in interface FilterAttachablepublic FilterReply getFilterChainDecision(Object event)
FilterAttachable
getFilterChainDecision in interface FilterAttachablepublic Filter getFirstFilter()
FilterAttachable
getFirstFilter in interface FilterAttachable
|
Logback API Version 0.9.8 |
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||