您只需将要记录的字符串分配给LOG
伪变量。
通常你想显式地添加一个换行符。像这样的东西:
NL="
"
TO=`formail -zxTo:`
Cc=`formail -zxCc:`
LOG=" To: $TO$NL Cc: $CC$NL"
这些通常会在“日志摘要”(您的问题中的内容)之前结束。如果您需要完全控制记录的内容,则可以设置LOGABSTRACT=no
并实现您自己的日志摘要。(不过,这相当棘手。)
另请注意,日志记录可能是异步的。日志摘要是一次性写完的,但是如果您有许多消息大致同时到达,您可能希望在日志条目中添加消除歧义的信息,或者(绝望地)在日志记录期间强制锁定,以便没有两条消息可以执行同时记录。
LOCKFILE=procmail.lock
# Critical section -- only one Procmail instance at a time can execute these recipes
LOG="fnord$NL"
:0w
| /usr/lib/dovecot/deliver -d "$USER" -m "$FOLDER"
# delivery succeeded, lockfile will be released
消除歧义的信息可能只是进程 ID。为了将它也包含在日志摘要中,您需要以某种方式将其走私。不知道如何用 Dovecot 做到这一点,是否有一个选项可以传入,它会被忽略但被 Procmail 记录?
TO=`formail -zxTo:`
LOG="[$$] To: $TO$NL"
CC=`formail -zxCc:`
LOG="[$$] Cc: $CC$NL"
:
:
# deliver
:0w
| deliver -d "$USER" -m "$FOLDER" -o ignore=$$
...最终应该记录类似Folder: deliver -d you -m INBOX -o ignore=1742
1742 将是进程 ID 的内容,以便您可以在以前的日志条目中找到相同的 PID。