---
name: "mod_log"
section: "3erl"
platform: "linux"
package: "erlang-manpages"
version: "1:10.b.1a-1"
release: "Debian 3.1 (Sarge)"
platforms: ["linux"]
url: "https://new.carta.tech/mod_log"
---

# mod\_log(3erl)

Standard logging using the "Common Logfile Format" and text files.

## NAME

mod\_log - Standard logging using the "Common Logfile Format" and text files.

## DESCRIPTION

This module makes it possible to log all incoming requests to an access log file. The de-facto standard Common Logfile Format is used for this purpose. There are numerous statistics programs available to analyze Common Logfile Format. The Common Logfile Format looks as follows:

*remotehost rfc931 authuser \[date\] "request" status bytes*

- ***remotehost*:**

  Remote hostname

- ***rfc931*:**

  The client's remote username (RFC 931).

- ***authuser*:**

  The username with which the user authenticated himself.

- ***\[date\]*:**

  Date and time of the request (RFC 1123).

- ***"request"*:**

  The request line exactly as it came from the client (RFC 1945).

- ***status*:**

  The HTTP status code returned to the client (RFC 1945).

- ***bytes*:**

  The content-length of the document transferred.

This module furthermore supports the use of an error log file to record internal server errors. The error log format is more ad hoc than Common Logfile Format, but conforms to the following syntax:

*\[date\]* access to *path* failed for *remotehost*, reason: *reason*

## DIRECTIVE: ErrorLog

*Syntax:* *ErrorLog* filename\
\
  *Default:* - None -\
\
  *Module:* mod\_log(3)

*ErrorLog* defines the *filename* of the error log file to be used to log server errors. If the *filename* does not begin with a slash (*/*) it is assumed to be relative to the ServerRoot, for example:

```
ErrorLog logs/error_log_8080
```

and errors will be logged in the server root($SERVER\_ROOT/logs/error\_log\_8080) space.

## DIRECTIVE: SecurityLog

*Syntax:* *SecurityLog* filename\
\
  *Default:* - None -\
\
  *Module:* mod\_log(3)

*SecurityLog* defines the *filename* of the access log file to be used to log security events. If the *filename* does not begin with a slash (*/*) it is assumed to be relative to the ServerRoot. For example:

```
SecurityLog logs/security_log_8080
```

and security events will be logged in the server root($SERVER\_ROOT/logs/security\_log\_8080) space.

## DIRECTIVE: TransferLog

*Syntax:* *TransferLog* filename\
\
  *Default:* - None -\
\
  *Module:* mod\_log(3)

*TransferLog* defines the *filename* of the access log file to be used to log incoming requests. If the *filename* does not begin with a slash (*/*) it is assumed to be relative to the ServerRoot. For example:

```
TransferLog logs/access_log_8080
```

and errors will be logged in the server root($SERVER\_ROOT/logs/access\_log\_8080) space.

## EWSAPI MODULE INTERACTION

Uses the following EWSAPI interaction data, if available:

- ***{remote\_user, RemoteUser}*:**

  as defined in mod\_auth(3).

This module furthermore exports a batch of functions to be used by other EWSAPI modules:

## EXPORTS

**error\_log(Socket,SocketType,ConfigDB,Date,Reason) -\> ok \| no\_error\_log**\

- Types

  Socket = socket()\
   SocketType = ip\_comm \| ssl\
   ConfigDB = config\_db()\
   Date = Reason = string()\

*error\_log/5* logs an error in a log file. *Socket* is a handler to a socket of type *SocketType* and *config\_db()* is the server config file in ETS table format as described in httpd(3). *Date* is a RFC 1123 date string as generated by httpd\_util:rfc1123\_date/0.

## SEE ALSO

httpd(3), mod\_auth(3), mod\_security(3), mod\_disk\_log(3)

## AUTHOR

```
Joakim Grebenö  - support@erlang.ericsson.se
```
