Python 执行STAX文件时将日志消息转储到控制台
我有一个从命令行执行的XML文件(STAX)Python 执行STAX文件时将日志消息转储到控制台,python,xml,automation,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
[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>
打印(“本”);
“%s%s:是一个:%s%”(StatxCurrentTestCase、StatxCurrentFunction、命令)
“测试”
0
“%s%s:终止函数错误:%s%”(StatxCurrentTestCase、StatxCurrentFunction、eInfo)
电子信息
1.
为什么日志记录在执行期间或执行之后都不会转储到控制台据我所知,对于
,
或python打印(“This”)
STAX EXECUTE WAIT RETURNRESULT请求在结果中返回它应该返回的内容,如中“EXECUTE”小节“Results”小节所述。它将返回有关作业的更多摘要类型信息以及记录在STAX作业日志中的任何错误 STAX作业中的元素在STAX作业用户日志中记录消息,如中的“日志:在STAX作业用户日志中记录消息”部分所述。本节介绍如何查询STAX作业用户日志以查看已登录到STAX作业的消息的更多信息,请参阅“STAX日志记录”部分的小节 或者,要在STAX服务计算机上查询作业ID为1的STAX作业的STAX作业用户日志,可以指定: 注意:运行STAX作业时,会创建一个STAX作业日志。这与STAX作业用户日志不同。仅当STAX作业在其中记录数据时(例如,通过元素),才会创建STAX作业用户日志 STAX作业中的元素向STAX监视器发送消息,如《STAX用户指南》中的“消息:向STAX监视器发送消息”一节所述。要查看发送到STAX监视器的消息,需要通过STAX监视器运行作业。运行STAX作业时,这些消息将显示在“消息”面板中 至于元素中“print”语句的输出的位置,这由PYTHONOUTPUT参数控制,该参数可在注册STAX服务时指定,或通过STAX SET PYTHONOUTPUT请求更改,或在执行STAX作业时为特定STAX作业重写(通过在STAX执行请求上或通过STAX监视器指定PYTHONOUTPUT选项)。这将在《STAX用户指南》的第节和“执行”一节中讨论 默认情况下,将Python打印输出记录在STAX作业用户日志中。因此,如果使用默认设置,“打印”输出将记录到STAX作业用户日志中(与记录元素中消息的位置相同),您可以通过查询STAX作业用户日志来查看它,正如我前面所说的
- PYTHONOUTPUT指定应重定向Python stdout/stderr的位置(例如,如果在STAX作业的元素中使用print语句)。有效值如下(不区分大小写):
- “JobUserLog”表示将Python输出记录在STAX作业用户日志中。这是默认值
- “Message”表示将Python输出发送到STAX监视器并在Messages面板中显示
- “JobUserLogAndMsg”表示将Python输出记录在STAX作业用户日志中,并将其发送到STAX监视器并在消息面板中显示
- “JVMLog”表示使用以下格式在JVM日志中为STAX服务写入Python输出,以便您知道哪个STAX作业产生了输出以及输出的时间: [作业ID::
STAF local LOG QUERY MACHINE {STAF/Config/MachineNickname} LOGNAME STAX_Job_1_User