const mixinafBedSheet::RequestLogMiddleware

afBedSheet::RequestLogMiddleware : afBedSheet::Middleware

Logs HTTP requests to file in the W3C Extended Log File Format. Uses LogMod.

To enable, set the log dir and (optionally) the filename pattern in your AppModule:

@Contribute { serviceType=ApplicationDefaults# } 
static Void contributeAppDefaults(Configuration conf) {
  conf[BedSheetConfigIds.requestLogDir]             = `/my/log/dir/`
  conf[BedSheetConfigIds.requestLogFilenamePattern] = "bedSheet-{YYYY-MM}.log" // (optional)
}

Note: the log dir must end in a trailing /slash/.

See util::FileLogger to configure datetime patterns for your log files.

The fields property configures the format of the log records. It is a string of field names separated by a space. The following field names are supported:

  • date: UTC date as DD-MM-YYYY
  • time: UTC time as hh:mm:ss
  • c-ip: the numeric IP address of the remote client socket
  • c-port: the IP port of the remote client socket
  • cs-method: the request method such as GET
  • cs-uri: the encoded request uri (path and query)
  • cs-uri-stem: the encoded path of the request uri
  • cs-uri-query: the encoded query of the request uri
  • sc-status: the return status code
  • time-taken: the time taken to process request in milliseconds
  • cs(HeaderName): request header value such User-Agent

If any unknown fields are specified or not available then "-" is logged. Example log record:

2013-02-22 13:13:13 127.0.0.1 - GET /doc - 200 222 "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) etc" "http://localhost/index"

dir

Source

abstract File? dir()

Directory where the request log files are written.

@see BedSheetConfigIds.requestLogDir

fields

Source

abstract Str fields()

Format of the web log records as a string of names.

@see BedSheetConfigIds.requestLogFields

filenamePattern

Source

abstract Str filenamePattern()