2

我正在使用 CORB 通过命令在 MarkLogic DB 上运行模块:

ml 本地 corb --modules=abcd.xqy

并希望在我已添加xdmp:log()abcd.xqy. 但是,我无法找出生成日志消息的位置。它不在命令提示符下,也不在 MarkLgoic 日志目录中。

有没有办法通过属性文件设置 CORB 日志设置?如果是,如何?或任何其他方式来跟踪生成的日志消息。

以下的一些背景是:

  1. 我已经通过 roxy 命令摄取了 RDFXML

    ml 本地部署内容

  2. 现在,我将 RDFXML 作为输入,并通过上述 CORB 命令将它们转换为三元组。它正在成功运行。
  3. insert-taxonomy-triples.xqy 有一些日志消息没有显示在命令提示符以及 MarkLogic 日志目录中。
我的完整命令是:

ml local corb --modules=/tools/ingest/insert-taxonomy-triples.xqy --uris=/tools/ingest/find-taxonomy-uris.xqy

插入分类-triples.xqy

在“/MarkLogic/semantics.xqy”处导入模块命名空间 sem =“ http://marklogic.com/semantics ”;在“/app/common/constants.xqy”处导入模块命名空间c =“ http://bsigroup.com/ns/meddev/common/constants ”;

声明命名空间 xdmp = " http://marklogic.com/xdmp ";

将变量 $URI 声明为 xs:string external;

let $taxonomy-name := fn:replace(fn:replace($URI, '/taxonomies/',''), '.rdf','')

让 $graph-name := fn:concat($c:BSI-TAXONOMY-BASE-URI, $taxonomy-name)

让 $log := xdmp:log("xxxxxxxxxxxxxxx")

let $log := xdmp:log(fn:concat("/tools/ingest/insert-taxonomy-triples.xqy ", "main module: parsing taxonomy ", $URI, " and inserting triples to graph ", $graph-名称),“调试”)

让 $permissions := (xdmp:permission("meddev-role", "update"), xdmp:permission("meddev-role", "read"))

return sem:rdf-insert(sem:rdf-parse(fn:doc($URI), "rdfxml"), (fn:concat("override-graph=", $graph-name)), $permissions, ($图名))

查找分类-uris.xqy

声明命名空间 xdmp = " http://marklogic.com/xdmp "; 声明命名空间 cts = " http://marklogic.com/cts ";

让 $taxonomy-uris := cts:uri-match("/taxonomies/*")

let $log := xdmp:log(fn:concat('/tools/ingest/find-taxonomy-uris.xqy', '主模块:找到的分类是 ', fn:count($taxonomy-uris), ' URIs '), '调试')

返回 ( fn:count($taxonomy-uris), $taxonomy-uris )

命令提示符结果:

D:\mdol-dev\mdol-as>ml local corb --modules=/tools/ingest/insert-taxonomy-triple s.xqy --uris=/tools/ingest/find-taxonomy-uris.xqy

java -cp D:/mdol-dev/mdol-as/deploy/lib/java/corb.jar;D:/mdol-dev/mdol-as/deploy /lib/java/marklogic-xcc-5.0.2.jar com.marklogic.developer.corb.Manager xcc://adm in:admin@localhost:9002/meddev-content "" tools/ingest/insert-taxonomy-triples.x qy 1 tools/ingest/find-taxonomy-uris。 xqy "/" 医疗设备模块 false

登录到控制台 2014 年 7 月 16 日上午 10:35:59 com.marklogic.developer.SimpleLogger configureLogger

信息:设置日志记录:com.marklogic.ps 2014 年 7 月 16 日上午 10:35:59 com.marklogic.developer.corb.Manager 运行

信息:com.marklogic.developer.corb.Manager 开始:版本 2010-08-24.1 on 1.7 .0_40(Java(TM) SE 运行时环境)2014 年 7 月 16 日上午 10:35:59 com.marklogic.developer.corb。经理运行

信息:最大堆大小 = 1783 MiB 2014 年 7 月 16 日上午 10:35:59 com.marklogic.developer.corb.Manager prepareContentSource

信息:使用内容源 xcc://admin:admin@localhost:9002/meddev-content 2014 年 7 月 16 日上午 10:35:59 com.marklogic.developer.corb.Manager registerStatusInfo

信息:配置的模块数据库:meddev-modules 2014 年 7 月 16 日上午 10:35:59 com.marklogic.developer.corb.Manager registerStatusInfo

信息:配置的模块根目录:/2014 年 7 月 16 日上午 10:35:59 com.marklogic.developer.corb.Manager registerStatusInfo

信息:配置的 uri 模块:tools/ingest/find-taxonomy-uris.xqy 2014 年 7 月 16 日上午 10:35:59 com.marklogic.developer.corb.Manager registerStatusInfo

信息:配置的流程模块:tools/ingest/insert-taxonomy-triples.xqy 2014 年 7 月 16 日上午 10:35:59 com.marklogic.developer.corb.Manager prepareModules

信息:检查模块,数据库:meddev-modules 2014 年 7 月 16 日上午 10:35:59 com.marklogic.developer.corb.Manager prepareModules

信息:跳过模块安装:tools/ingest/find-taxonomy-uris.xqy 2014 年 7 月 16 日上午 10:35:59 com.marklogic.developer.corb.Manager prepareModules

信息:跳过模块安装:tools/ingest/insert-taxonomy-triples.xqy 2014 年 7 月 16 日上午 10:35:59 com.marklogic.developer.corb.Manager populateQueue

信息:填充队列 2014 年 7 月 16 日上午 10:35:59 com.marklogic.developer.corb.Manager populateQueue

信息:调用模块 /tools/ingest/find-taxonomy-uris.xqy 2014 年 7 月 16 日上午 10:35:59 com.marklogic.developer.corb.Manager populateQueue

信息:预计总计 2014 年 7 月 16 日上午 10:35:59 com.marklogic.developer.corb.Manager populateQueue

信息:排队 2/2 Jul 16, 2014 10:35:59 AM com.marklogic.developer.corb.Monitor monitorResults

信息:监控 2 个任务 2014 年 7 月 16 日上午 10:39:29 com.marklogic.developer.corb.Monitor showProgress

信息:已完成 1/2,0 tps,1 个活动线程 2014 年 7 月 16 日上午 10:39:29 com.marklogic.developer.corb.Monitor monitorResults

信息:等待池终止 2014 年 7 月 16 日上午 10:39:29 com.marklogic.developer.corb.Monitor monitorResults

INFO:完成所有任务 2/2,0 tps,0 个活动线程

4

1 回答 1

2

生成的任何消息xdmp:log()都将在ErrorLog.txt(在 Linux 上:)中/var/opt/MarkLogic/Logs/ErrorLog.txt。您编写的命令也使用Roxy Deployer

--modules参数告诉 Corb 您想要做什么,但您还需要指定--collection(一个字符串命名要处理的集合)或--uris(一个将识别要处理的文档的模块)。将其中之一添加到您的命令中,您应该会看到 Corb 的日志记录消息出现在控制台上。


根据附加信息,我看到了几件事。

  1. find-taxonomy-uris.xqy 显然找到了两个:INFO: queued 2/2.
  2. insert-taxonomy-triples.xqy 成功处理了这两个:INFO: completed all tasks 2/2.
  3. 您有三个xdmp:log()调用,其中两个传入“调试”参数。文件日志级别的默认设置是信息,它将排除调试消息。在 Admin UI 中,转到 Groups -> Default(假设这是您正在使用的组名),向下滚动到“file log level”并将其设置为“debug”。那应该使这些消息出现。您应该已经看到了xdmp:log("xxxxxxxxxxxxxxxx")电话;你是?

另一个观察:由于您的目标是将 RDFXML 转换为 MarkLogic 三元组,您可以使用mlcp,它为您执行该转换,开箱即用。如果您尝试过但没有成功,那么知道这将很有用。

于 2014-07-15T11:00:45.787 回答