## org.mortbay.http
Class NCSARequestLog

    java.lang.Object
      |
      +--org.mortbay.http.NCSARequestLog

All Implemented Interfaces:
  LifeCycle, RequestLog, java.io.Serializable

public class NCSARequestLog
extends java.lang.Object
implements RequestLog

NCSA HTTP Request Log. NCSA common or NCSA extended (combined) request log.

Version:
  $Id: NCSARequestLog.java,v 1.24.2.1 2004/04/05 20:36:22 gregwilkins Exp $
Author:
  Tony Thompson, Greg Wilkins
See Also:
  Serialized Form

Constructor Summary
`NCSARequestLog()` Constructor.
`NCSARequestLog(java.lang.String filename)` Constructor.

Method Summary
`java.lang.String` `getDatedFilename()` Get the dated log filename.
`java.lang.String` `getFilename()` Get the log filename.
`java.lang.String[]` `getIgnorePaths()`
`java.lang.String` `getLogDateFormat()`
`java.lang.String` `getLogTimeZone()`
`int` `getRetainDays()`
`boolean` `isAppend()`
`boolean` `isBuffered()` Is output buffered.
`boolean` `isExtended()`
`boolean` `isStarted()`
`void` `log(HttpRequest request, HttpResponse response, int responseLength)` Log a request.
`void` `setAppend(boolean a)`
`void` `setBuffered(boolean buffered)` Set output buffering.
`void` `setExtended(boolean e)`
`void` `setFilename(java.lang.String filename)` Set the log filename.
`void` `setIgnorePaths(java.lang.String[] ignorePaths)` Set which paths to ignore.
`void` `setLogDateFormat(java.lang.String format)`
`void` `setLogTimeZone(java.lang.String tz)`
`void` `setPreferProxiedForAddress(boolean value)` Prefer to log the proxied-for IP address (if present in the request header) over the native requester IP address.
`void` `setRetainDays(int retainDays)`
`void` `start()` Start the LifeCycle.
`void` `stop()` Stop the LifeCycle.

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### NCSARequestLog

    public NCSARequestLog()

  Constructor.

### NCSARequestLog

    public NCSARequestLog(java.lang.String filename)
                   throws java.io.IOException

  Constructor.

Parameters:
  `filename` - Filename, which can be in rolloverFileOutputStream format
Throws:
  `java.io.IOException`
See Also:
  `RolloverFileOutputStream`

Method Detail

### setFilename

    public void setFilename(java.lang.String filename)

  Set the log filename.

  Parameters:
    `filename` - The filename to use. If the filename contains the string "yyyy_mm_dd", then a RolloverFileOutputStream is used and the log is rolled over nightly and aged according setRetainDays. If no filename is set or a null filename passed, then requests are logged to System.err.
  See Also:
    `setRetainDays(int)`

### getFilename

    public java.lang.String getFilename()

  Get the log filename.

  Returns:
    The log filename without any date expansion.
  See Also:
    `getDatedFilename()`

### getDatedFilename

    public java.lang.String getDatedFilename()

  Get the dated log filename.

  Returns:
    The log filename with any date encoding expanded.
  See Also:
    `getFilename()`

### isBuffered

    public boolean isBuffered()

  Is output buffered.

  Returns:
    True if the log output is buffered (which can increase performance).

### setBuffered

    public void setBuffered(boolean buffered)

  Set output buffering.

  Parameters:
    `buffered` - True if the log output is buffered (which can increase performance).

### setLogDateFormat

    public void setLogDateFormat(java.lang.String format)

  Parameters:
    `format` - The date format to use within the log file.

### getLogDateFormat

    public java.lang.String getLogDateFormat()

  Returns:
    The date format to use within the log file.

### setLogTimeZone

    public void setLogTimeZone(java.lang.String tz)

  Parameters:
    `tz` - The date format timezone to use within the log file.

### getLogTimeZone

    public java.lang.String getLogTimeZone()

  Returns:
    The date format timezone to use within the log file.

### getRetainDays

    public int getRetainDays()

  Returns:
    The number of days to retain rollovered log files.

### setRetainDays

    public void setRetainDays(int retainDays)

  Parameters:
    `retainDays` - The number of days to retain rollovered log files.

### isExtended

    public boolean isExtended()

  Returns:
    True if NCSA extended format is to be used.

### setExtended

    public void setExtended(boolean e)

  Parameters:
    `e` - True if NCSA extended format is to be used.

### isAppend

    public boolean isAppend()

  Returns:
    True if logs are appended to existing log files.

### setAppend

    public void setAppend(boolean a)

  Parameters:
    `a` - True if logs are appended to existing log files.

### setIgnorePaths

    public void setIgnorePaths(java.lang.String[] ignorePaths)

  Set which paths to ignore.

  Parameters:
    `ignorePaths` - Array of path specifications to ignore

### getIgnorePaths

    public java.lang.String[] getIgnorePaths()

### setPreferProxiedForAddress

    public void setPreferProxiedForAddress(boolean value)

  Prefer to log the proxied-for IP address (if present in the request header) over the native requester IP address. Useful in reverse-proxy situations when you'd rather see the IP address of the host before the most recent proxy server, as opposed to your own proxy server(s) every time. jlrobins@socialserve.com, March 2004.

### start

    public void start()
               throws java.lang.Exception

  Description copied from interface: `LifeCycle`
  Start the LifeCycle.

  Specified by:
    `start` in interface `LifeCycle`
  Throws:
    `java.lang.Exception` - An arbitrary exception may be thrown.

### isStarted

    public boolean isStarted()

  Specified by:
    `isStarted` in interface `LifeCycle`
  Returns:
    True if the LifeCycle has been started.

### stop

    public void stop()

  Description copied from interface: `LifeCycle`
  Stop the LifeCycle. The LifeCycle may wait for current activities to complete normally, but it can be interrupted.

  Specified by:
    `stop` in interface `LifeCycle`

### log

    public void log(HttpRequest request,
                    HttpResponse response,
                    int responseLength)

  Log a request.

  Specified by:
    `log` in interface `RequestLog`
  Parameters:
    `request` - The request
    `response` - The response to this request.
    `responseLength` - The bytes written to the response.

Copyright © 2000 Mortbay Consulting Pty. Ltd. All Rights Reserved.