
alert:make-log-action() as element(alert:action)
Create a standard logging action named "log".
Rules that reference this action must provide an
<alert:directory/> element that
specifies where the log file should be created. The
inserted document will have a random long integer
ID and its filename will be ID.xml within the
specified directory.
<alert:permissions> element
containing a series of <sec:permission>
elements and/or an <alert:collections>
element containing <alert:collection>
elements that specify the permissions and collections for
the log document. This information is simply passed through
to xdmp:document-insert.
An example of the rule's options is as follows:
<alert:options>
<alert:directory>/some/directory</alert:directory>
<alert:permissions>
<sec:permission>
<sec:capability>read</sec:capability>
<sec:role-id>129382323</sec:role-id>
</sec:permission>
</alert:permissions>
<alert:collections>
<alert:collection>http://acme.com/alert-log</alert:collection>
</alert:collections>
</alert:options>
The log document has the following structure:
<alert:log>
<alert:log-id>82388423</alert:log-id>
<alert:config-uri>http://acme.com/alert/message-board</alert:config-uri>
<alert:rule-id>12352</alert:rule-id>
<alert:user-id>8271938239</alert:user-id>
<alert:document-uri>/the/URI/of/the/matching/document</alert:document-uri>
<alert:timestamp>2008-05-31T08:20:00-08:00</alert:timestamp>
</alert:log>
The log document insertion will be performed as the user who created
the rule, and the user must have permission to create documents in any
collections they specify. The log-id is a random number chosen by
the action.
xquery version "1.0-ml"; import module namespace alert = "http://marklogic.com/xdmp/alert" at "/MarkLogic/alert.xqy"; alert:action-insert(alert:make-log-action())