我有一个bash脚本调用rest-api扩展并开始备份所有数据库(代码到rest-api扩展可以在我之前的帖子中找到:MarkLogic 7 - database-backup with rest-api)
问题是所有信息都被转储到/var/opt/MarkLogic/Logs/ErrorLog.txt
,而这些并非真正的错误。
我查看了xdmp:trace
,xdmp:query-trace
,xdmp:log
,并尝试在xdmp:query-trace(true())
之前添加简单xdmp:database-backup
,但这并没有什么区别
查看邮件列表和http://developers.marklogic.com,似乎人们尝试了类似的东西,但我无法找到正确的例子。有没有办法将这些消息重定向到自定义文件或将所有消息打印到stdout而不是打印到日志中?
监控备份会更容易,而不是在那里挖掘很多其他系统消息。
我正在寻找的信息是:已启动,错误(如有),已完成。
答案 0 :(得分:1)
如果您愿意设置轮询,请创建一个调用xdmp:database-backup-status()的端点。传递job-id并每隔n秒检查一次,直到完成为止。
答案 1 :(得分:0)
xdmp:query-trace
函数用于优化查询,它们也会发送到文件和系统日志。
在管理工具(配置>组>默认)中,有一个标题为file log level
的设置,用于控制发送到ErrorLog.txt
文件的邮件的粒度。如果您将其值更改为warning
或error
(或更高),则只会包含更多关键日志记录信息。
但由于这会从日志中排除潜在有用的信息,因此常见的解决方案是通过过滤器监视该日志文件,因此您仍然可以在以后筛选排除的消息。许多日志工具都可以使用简单的字符串匹配或正则表达式进行过滤。所有MarkLogic的日志消息都以日志级别为前缀("信息:","注意:","警告:"等等),所以很容易过滤你不想要的。你可以使用tail
完成所有这些工作,并且有很多关于如何做到这一点的好解决方案。
除file log level
设置外,还有一个system log level
设置可控制发送到操作系统的邮件的粒度。如果你有工具来监视和过滤这个更好的输出,你可以改用它们。
此外,当您调用xdmp:log
时,您可以将所需的日志级别作为第二个参数传递,该日志级别仅出现在粒度设置为该级别或更高级别的日志中。