我有一个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>
答案 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>