2013-04-05 44 views
0

我有我的命令行
傾銷日誌消息執行STAX文件

[[email protected] ~]# staf local STAX EXECUTE FILE "/root/test2.xml" 
ARGS "{'command':'ls'}" WAIT RETURNRESULT 

執行並得到下面的輸出XML文件(STAX)時安慰..

Response 
-------- 
{ 
    Job ID   : 57 
    Start Date-Time: 20130405-18:27:13 
    End Date-Time : 20130405-18:27:13 
    Status   : Normal 
    Result   : 0 
    Job Log Errors : [] 
    Testcase Totals: { 
    Tests : 0 
    Passes: 0 
    Fails : 0 
    } 
} 

腳本內容..

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<!DOCTYPE stax SYSTEM "stax.dtd"> 
<stax> 
<defaultcall function="runCommand"/> 

<function name="runCommand"> 
    <function-list-args> 
      <function-required-arg name="command"/> 
    </function-list-args> 

    <try> 
      <sequence> 

      <script>print("This");</script> 
      <message>'%s %s: is a: %s' % (STAXCurrentTestcase, STAXCurrentFunction, command)</message> 
      <log>'test'</log> 

      <return>0</return> 
     </sequence> 

     <catch exception="'eTerminateFunction'" var="eInfo"> 
      <sequence> 
        <log level="'fail'">'%s %s: Terminating function Error: %s' % (STAXCurrentTestcase, STAXCurrentFunction, eInfo)</log> 
        <tcstatus result="'fail'">eInfo</tcstatus> 
        <return>1</return> 
      </sequence> 
     </catch> 
    </try> 
</function> 
</stax> 

怎麼會沒有記錄的傾倒過程中或執行之後安慰?
<log><message>或蟒蛇<script>print("This")</script>

回答

1

,就像我知道

的STAX EXECUTE WAIT RETURNRESULT請求返回的結果正是它應該返回在節中說明「執行」 ,在STAX User's Guide at的小節「結果」。它返回有關作業的更多摘要類型信息以及STAX作業日誌中記錄的所有錯誤。

STAX作業中的元素在STAX作業用戶日誌中記錄消息,如STAX User's Guide at中的「日誌:在STAX作業用戶日誌中記錄消息」部分中所述。本節說明查看「STAX日誌記錄」部分的子部分"Querying the STAX Job User Logs" at,以獲取有關如何查詢STAX作業用戶日誌以查看已記錄在STAX作業中的消息的詳細信息。

或者查詢STAX招聘的日誌與STAX服務機上作業ID 1 STAX作業時,可以指定:

STAF local LOG QUERY MACHINE {STAF/Config/MachineNickname} LOGNAME STAX_Job_1_User 

注:當您運行STAX作業,創建一個STAX作業日誌。這與STAX作業用戶日誌不同。 STAX作業用戶日誌只有在STAX作業中記錄了數據(例如通過元素)時纔會創建。

STAX作業中的元素向STAX監視器發送消息,如STAX用戶指南http://staf.sourceforge.net/current/STAX/staxug.html#Header_Message_Element中的「消息:發送消息到STAX監視器」部分所述。要查看發送到STAX Monitor的消息,您需要通過STAX Monitor運行作業。運行STAX作業時,消息將顯示在「消息」面板中。

至於元素中「print」語句的輸出在哪裏出現,這由PYTHONOUTPUT參數控制,該參數可以在註冊STAX服務時指定,或通過STAX SET PYTHONOUTPUT請求更改,或者爲特定執行STAX作業時的STAX作業(通過在STAX EXECUTE請求或通過STAX監視器指定PYTHONOUTPUT選項)。在「STAX用戶指南」的"Installation and Configuration". sub-section "STAX service machine" at和「EXECUTE」部分中討論了這一點。

缺省值是在STAX作業用戶日誌中記錄Python打印輸出。因此,如果您使用的是默認設置,那麼「打印」輸出將被記錄到STAX作業用戶日誌中(元素中的消息記錄在同一位置),您可以通過查詢STAX作業用戶日誌來查看它我上面談過。

  • PYTHONOUTPUT指定Python stdout/stderr應該重定向到的位置(例如,如果在STAX作業的元素中使用print語句)。有效值如下(不區分大小寫):
  • 「JobUserLog」指示在STAX作業用戶日誌中記錄Python輸出。這是默認設置。
  • 「消息」指示將Python輸出發送到STAX監視器並將其顯示在「消息」面板中。
  • 「JobUserLogAndMsg」指示將STAX作業用戶日誌中的Python輸出記錄下來,並將其發送到STAX監視器並將其顯示在「消息」面板中。
  • 「JVMLog」表示使用以下格式寫在JVM日誌Python的輸出爲STAX服務,這樣你就會知道哪些STAX作業源自輸出和在什麼時間: < Timestamp> [JobID: <JobID>] <Python Output>