执行STAX文件时将日志消息转储到控制台

时间:2013-04-05 22:48:08

标签: python xml automation

我有一个XML文件(STAX),我从命令行执行

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

获得以下输出..

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>或python <script>print("This")</script>

1 个答案:

答案 0 :(得分:1)

尽我所知

  

STAX EXECUTE WAIT RETURNRESULT请求在结果中返回它应该返回的内容,如STAX User's Guide at中“EXECUTE”部分“Results”部分所述。它返回有关作业的更多摘要类型信息以及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监视器发送消息,如“{3}}中STAX用户指南”中的“消息:向STAX监视器发送消息”一节中所述。要查看发送到STAX Monitor的消息,您需要通过STAX Monitor运行作业。运行STAX作业时,消息将显示在“消息”面板中。

     

关于元素中“print”语句的输出的位置,这由PYTHONOUTPUT参数控制,该参数可以在注册STAX服务时指定,也可以通过STAX SET PYTHONOUTPUT请求更改,或者为特定STAX覆盖执行STAX作业时的作业(通过在STAX EXECUTE请求或STAX监视器上指定PYTHONOUTPUT选项)。这一点在STAX用户指南的http://staf.sourceforge.net/current/STAX/staxug.html#Header_Message_Element部分和“EXECUTE”部分进行了讨论。

     

默认设置是在STAX作业用户日志中记录Python打印输出。因此,如果您使用默认设置,“打印”输出将记录到STAX作业用户日志(记录元素中消息的相同位置),您可以通过查询STAX作业用户日志来查看它我在上面谈过。

     
      
  • PYTHONOUTPUT指定应该重定向Python stdout / stderr的位置(例如,如果在STAX作业的元素中使用print语句)。有效值如下(不区分大小写):
  •   
  • “JobUserLog”表示在STAX作业用户日志中记录Python输出。这是默认值。
  •   
  • “消息”表示将Python输出发送到STAX监视器并在“消息”面板中显示它。
  •   
  • “JobUserLogAndMsg”表示在STAX作业用户日志中记录Python输出并将其发送到STAX监视器并在“消息”面板中显示它。
  •   
  • “JVMLog”表示使用以下格式在JVM日志中为STAX服务编写Python输出,以便您知道哪个STAX作业产生了输出以及在什么时间:   &lt; Timestamp> [JobID: <JobID>] <Python Output>
  •