Exim Filter Specification section 17

Previous Next Contents (Exim Filter Specification)

## 17. Logging commands

A log can be kept of actions taken by a filter file. This facility is normally available in conventional configurations, but there are some situations where it might not be. Also, the system administrator may choose to disable it. Check your local information if in doubt.

Logging takes place while the filter file is being interpreted. It does not queue up for later like the delivery commands. The reason for this is so that a log file need be opened only once for several write operations. There are two commands, neither of which constitutes a significant delivery. The first defines a file to which logging output is subsequently written:

`` `logfile <file name>`
`` `e.g. logfile $home/filter.log`

The file name must be fully qualified. You can use `$home`, as in this example, to refer to your home directory. The file name may optionally be followed by a mode for the file, which is used if the file has to be created. For example,

`` `logfile $home/filter.log 0644`

The number is interpreted as octal, even if it does not begin with a zero. The default for the mode is 600. It is suggested that the `logfile` command normally appear as the first command in a filter file. Once `logfile` has been obeyed, the `logwrite` command can be used to write to the log file:

`` `logwrite "<some text string>"`
`` `e.g. logwrite "$tod_log $message_id processed"`

It is possible to have more than one `logfile` command, to specify writing to different log files in different circumstances. Writing takes place at the end of the file, and a newline character is added to the end of each string if there isn't one already there. Newlines can be put in the middle of the string by using the ``\n'' escape sequence. Lines from simultaneous deliveries may get interleaved in the file, as there is no interlocking, so you should plan your logging with this in mind. However, data should not get lost.

Previous Next Contents (Exim Filter Specification)