如何设置CORB日志来调试XQUery信息

时间:2014-07-15 07:29:54

标签: marklogic marklogic-corb

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

  

ml local corb --modules = abcd.xqy

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

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

以下的一些背景是:

  1. 我通过roxy命令

    摄取了RDFXML
      

    ml本地部署内容

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

         

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

    插入-分类法triples.xqy

      

    import module namespace sem =" http://marklogic.com/semantics" at" /MarkLogic/semantics.xqy" ;;   import module namespace c =" http://bsigroup.com/ns/meddev/common/constants" at" /app/common/constants.xqy" ;;

         

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

         

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

         

    让$ taxonomy-name:= fn:replace(fn:replace($ URI,' / taxonomies /',''),' .rdf&# 39;,'&#39)

         

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

         

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

         

    让$ log:= xdmp:log(fn:concat(" /tools/ingest/insert-taxonomy-triples.xqy",                                  "主要模块:解析分类法",$ URI,                                  "并将三元组插入图形",$ graph-name),                        "调试&#34)

         

    让$ permissions:=(xdmp:permission(" meddev-role","更新"),xdmp:permission(" meddev-role",& #34;阅读"))

         

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

    找到-分类法uris.xqy

      

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

         

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

         

    let $ log:= xdmp:log(fn:concat(' /tools/ingest/find-taxonomy-uris.xqy',                    '主要模块:找到的分类法是',                    FN:计数($分类法的URI)                    ' URIs'                    )                 '调试&#39)

         

    返回(      FN:计数($分类法的URI)      $分类学的URI   )

    命令提示结果:

      

    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""工具/摄取/插入 - 分类 - triples.x   qy 1 tools / ingest / find-taxonomy-uris.xqy" /" meddev-modules false

         

    登录到CONSOLE 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运行

         

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

         

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

         

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

         

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

         

    信息:已配置的模块root:/   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

         

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

         

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

         

    信息:期待总数2   2014年7月16日上午10:35:59 com.marklogic.developer.corb.Manager populateQueue

         

    INFO:排队2/2   2014年7月16日上午10:35:59 com.marklogic.developer.corb.Monitor monitorResults

         

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

         

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

         

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

         

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

1 个答案:

答案 0 :(得分: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()个来电,其中两个通过"调试"参数。文件日志级别的默认设置是info,它将排除调试消息。在管理界面中,转到群组 - >默认(假设您正在使用的组名称),向下滚动到"文件日志级别"并将其设置为" debug"。这应该会显示这些消息。你应该已经看到了xdmp:log("xxxxxxxxxxxxxxxx")电话;你是?
  4. 另一个观察结果:由于您的目标是将RDFXML转换为MarkLogic三元组,因此您可以使用mlcp,它可以为您提供开箱即用的转换功能。如果你尝试了它并且它没有工作,那么知道这将是有用的。