summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorJeremy Harris <jgh146exb@wizmail.org>2022-02-04 21:53:28 +0000
committerJeremy Harris <jgh146exb@wizmail.org>2022-02-05 19:34:43 +0000
commit19fdbfb4a2b6ca4a6a96ef52be848f0a23e2414f (patch)
tree0e11463bafd367fc15eb5451d9ba953821431650 /doc
parentacfde2172e82f6b776f16d78f789c6968b69b9f0 (diff)
Debug pretrigger capture facility
Diffstat (limited to 'doc')
-rw-r--r--doc/doc-docbook/spec.xfpt43
-rw-r--r--doc/doc-txt/NewStuff2
2 files changed, 38 insertions, 7 deletions
diff --git a/doc/doc-docbook/spec.xfpt b/doc/doc-docbook/spec.xfpt
index 67d79aa7a..6acdc1a32 100644
--- a/doc/doc-docbook/spec.xfpt
+++ b/doc/doc-docbook/spec.xfpt
@@ -31600,14 +31600,43 @@ sender when the destination system is doing content-scan based rejection.
This control turns on debug logging, almost as though Exim had been invoked
with &`-d`&, with the output going to a new logfile in the usual logs directory,
by default called &'debuglog'&.
-The filename can be adjusted with the &'tag'& option, which
-may access any variables already defined. The logging may be adjusted with
-the &'opts'& option, which takes the same values as the &`-d`& command-line
-option.
+
.new
-Logging started this way may be stopped by using the &'stop'& option.
-The &'kill'& option additionally removes the debug file.
+Options are a slash-separated list.
+If an option takes an argument, the option name and argument are separated by
+an equals character.
+Several options are supported:
.wen
+.display
+tag=<&'suffix'&> The filename can be adjusted with thise option.
+ The argument, which may access any variables already defined,
+ is appended to the default name.
+
+opts=<&'debug&~options'&> The argument specififes what is to be logged,
+ using the same values as the &`-d`& command-line option.
+
+stop Logging started with this control may be
+ stopped by using this option.
+
+kill Logging started with this control may be
+ stopped by using this option.
+ Additionally the debug file will be removed,
+ providing one means for speculative debug tracing.
+
+pretrigger=<&'size'&> This option specifies a memory buffuer to be used
+ for pre-trigger debug capture.
+ Debug lines are recorded in the buffer until
+ and if) a trigger occurs; at which time they are
+ dumped to the debug file. Newer lines displace the
+ oldest if the buffer is full. After a trigger,
+ immediate writes to file are done as normal.
+
+trigger=<&'reason'&> This option selects cause for the pretrigger buffer
+ see above) to be copied to file. A reason of $*now*
+ take effect immediately; one of &*paniclog*& triggers
+ on a write to the panic log.
+.endd
+
Some examples (which depend on variables that don't exist in all
contexts):
.code
@@ -31616,6 +31645,8 @@ contexts):
control = debug/opts=+expand+acl
control = debug/tag=.$message_exim_id/opts=+expand
control = debug/kill
+ control = debug/opts=+all/pretrigger=1024/trigger=paniclog
+ control = debug/trigger=now
.endd
diff --git a/doc/doc-txt/NewStuff b/doc/doc-txt/NewStuff
index 46e6254bb..3555d8c12 100644
--- a/doc/doc-txt/NewStuff
+++ b/doc/doc-txt/NewStuff
@@ -22,7 +22,7 @@ Version 4.96
the main and panic logs. A future release will enforce this by failing
the lookup.
- 6. The ACL "debug" control gains a "stop" option.
+ 6. The ACL "debug" control gains options "stop", "pretrigger" and "trigger".
Version 4.95