X-Git-Url: https://git.exim.org/users/jgh/exim.git/blobdiff_plain/2fe767453007d1b015f52313d16dc61635085621..82b199b94da8ad79db922e34e2fc457eed4ad5ad:/doc/doc-docbook/spec.xfpt diff --git a/doc/doc-docbook/spec.xfpt b/doc/doc-docbook/spec.xfpt index b75e36ba4..34205b4f4 100644 --- a/doc/doc-docbook/spec.xfpt +++ b/doc/doc-docbook/spec.xfpt @@ -11137,8 +11137,17 @@ number of lines received. Before delivery happens (that is, before filters, routers, and transports run) the count is increased to include the &'Received:'& header line that Exim standardly adds, and also any other header lines that are added by ACLs. The blank line that separates the message header -from the body is not counted. Here is an example of the use of this variable in -a DATA ACL: +from the body is not counted. + +.new +As with the special case of &$message_size$&, during the expansion of the +appendfile transport's maildir_tag option in maildir format, the value of +&$message_linecount$& is the precise size of the number of newlines in the +file that has been written (minus one for the blank line between the +header and the body). +.wen + +Here is an example of the use of this variable in a DATA ACL: .code deny message = Too many lines in message header condition = \ @@ -20183,6 +20192,7 @@ The regular expression should not assume that the length is at the end of the file name (even though &%maildir_tag%& puts it there) because maildir MUAs sometimes add other information onto the ends of message file names. +Section &<>& contains further information. .option quota_warn_message appendfile string&!! "see below" @@ -20597,6 +20607,7 @@ tag is added to its name. However, if adding the tag takes the length of the name to the point where the test &[stat()]& call fails with ENAMETOOLONG, the tag is dropped and the maildir file is created with no tag. +.new .vindex "&$message_size$&" Tags can be used to encode the size of files in their names; see &%quota_size_regex%& above for an example. The expansion of &%maildir_tag%& @@ -20606,8 +20617,20 @@ forced to fail, the tag is ignored, but a non-forced failure causes delivery to be deferred. The expanded tag may contain any printing characters except &"/"&. Non-printing characters in the string are ignored; if the resulting string is empty, it is ignored. If it starts with an alphanumeric character, a leading -colon is inserted. +colon is inserted; this default has not proven to be the path that popular +maildir implementations have chosen (but changing it in Exim would break +backwards compatibility). +For one common implementation, you might set: +.code +maildir_tag = ,S=${message_size} +.endd +but you should check the documentation of the other software to be sure. + +It is advisable to also set &%quota_size_regex%& when setting &%maildir_tag%& +as this allows Exim to extract the size from your tag, instead of having to +&[stat()]& each message file. +.wen .section "Using a maildirsize file" "SECID136" @@ -32110,8 +32133,10 @@ log_file_path = $spool_directory/log/%slog If you do not specify anything at build time or run time, that is where the logs are written. -A log file path may also contain &`%D`& if datestamped log file names are in -use &-- see section &<>& below. +.new +A log file path may also contain &`%D`& or &`%M`& if datestamped log file names +are in use &-- see section &<>& below. +.wen Here are some examples of possible settings: .display @@ -32151,18 +32176,20 @@ renamed. +.new .section "Datestamped log files" "SECTdatlogfil" .cindex "log" "datestamped files" Instead of cycling the main and reject log files by renaming them periodically, some sites like to use files whose names contain a datestamp, -for example, &_mainlog-20031225_&. The datestamp is in the form &_yyyymmdd_&. -Exim has support for this way of working. It is enabled by setting the -&%log_file_path%& option to a path that includes &`%D`& at the point where the -datestamp is required. For example: +for example, &_mainlog-20031225_&. The datestamp is in the form &_yyyymmdd_& or +&_yyyymm_&. Exim has support for this way of working. It is enabled by setting +the &%log_file_path%& option to a path that includes &`%D`& or &`%M`& at the +point where the datestamp is required. For example: .code log_file_path = /var/spool/exim/log/%slog-%D log_file_path = /var/log/exim-%s-%D.log log_file_path = /var/spool/exim/log/%D-%slog +log_file_path = /var/log/exim/%s.%M .endd As before, &`%s`& is replaced by &"main"& or &"reject"&; the following are examples of names generated by the above examples: @@ -32170,6 +32197,7 @@ examples of names generated by the above examples: /var/spool/exim/log/mainlog-20021225 /var/log/exim-reject-20021225.log /var/spool/exim/log/20021225-mainlog +/var/log/exim/main.200212 .endd When this form of log file is specified, Exim automatically switches to new files at midnight. It does not make any attempt to compress old logs; you @@ -32178,15 +32206,18 @@ run &'exicyclog'& with this form of logging. The location of the panic log is also determined by &%log_file_path%&, but it is not datestamped, because rotation of the panic log does not make sense. -When generating the name of the panic log, &`%D`& is removed from the string. -In addition, if it immediately follows a slash, a following non-alphanumeric -character is removed; otherwise a preceding non-alphanumeric character is -removed. Thus, the three examples above would give these panic log names: +When generating the name of the panic log, &`%D`& or &`%M`& are removed from +the string. In addition, if it immediately follows a slash, a following +non-alphanumeric character is removed; otherwise a preceding non-alphanumeric +character is removed. Thus, the four examples above would give these panic +log names: .code /var/spool/exim/log/paniclog /var/log/exim-panic.log /var/spool/exim/log/paniclog +/var/log/exim/panic .endd +.wen .section "Logging to syslog" "SECID249"