在MarkLogic7中使用rest-api扩展时如何监视自定义日志中的数据库备份?

时间:2015-10-21 17:23:50

标签: marklogic

我有一个bash脚本调用rest-api扩展并开始备份所有数据库(代码到rest-api扩展可以在我之前的帖子中找到:MarkLogic 7 - database-backup with rest-api

问题是所有信息都被转储到/var/opt/MarkLogic/Logs/ErrorLog.txt,而这些并非真正的错误。

我查看了xdmp:tracexdmp:query-tracexdmp:log,并尝试在xdmp:query-trace(true())之前添加简单xdmp:database-backup,但这并没有什么区别

查看邮件列表和http://developers.marklogic.com,似乎人们尝试了类似的东西,但我无法找到正确的例子。有没有办法将这些消息重定向到自定义文件或将所有消息打印到stdout而不是打印到日志中?

监控备份会更容易,而不是在那里挖掘很多其他系统消息。

我正在寻找的信息是:已启动,错误(如有),已完成。

2 个答案:

答案 0 :(得分:1)

如果您愿意设置轮询,请创建一个调用xdmp:database-backup-status()的端点。传递job-id并每隔n秒检查一次,直到完成为止。

答案 1 :(得分:0)

xdmp:query-trace函数用于优化查询,它们也会发送到文件和系统日志。

在管理工具(配置>组>默认)中,有一个标题为file log level的设置,用于控制发送到ErrorLog.txt文件的邮件的粒度。如果您将其值更改为warningerror(或更高),则只会包含更多关键日志记录信息。

但由于这会从日志中排除潜在有用的信息,因此常见的解决方案是通过过滤器监视该日志文件,因此您仍然可以在以后筛选排除的消息。许多日志工具都可以使用简单的字符串匹配或正则表达式进行过滤。所有MarkLogic的日志消息都以日志级别为前缀("信息:","注意:","警告:"等等),所以很容易过滤你不想要的。你可以使用tail完成所有这些工作,并且有很多关于如何做到这一点的好解决方案。

file log level设置外,还有一个system log level设置可控制发送到操作系统的邮件的粒度。如果你有工具来监视和过滤这个更好的输出,你可以改用它们。

此外,当您调用xdmp:log时,您可以将所需的日志级别作为第二个参数传递,该日志级别仅出现在粒度设置为该级别或更高级别的日志中。