我试图从displayLogs()命令获取日志输出,并且我试图在WLST解释器中执行此操作。我收到以下错误,该错误是“ NameError:displayLogs”,我能够执行其他命令,例如domainRuntime()和许多其他命令,但该命令似乎不在领域之内。运行它时,是否需要在类路径中使用某种类来运行它?任何帮助,将不胜感激。
我在下面使用的源代码:
package wlst;
import weblogic.management.scripting.utils.WLSTInterpreter;
import org.python.util.InteractiveInterpreter;
import org.python.core.PyObject;
public class EmbeddedWLST
{
static InteractiveInterpreter interpreter = null;
EmbeddedWLST() {
interpreter = new WLSTInterpreter();
}
private static void connect() {
StringBuffer buffer = new StringBuffer();
buffer.append("connect('USERNAME','PASSWORD','t3://HOSTANAME:PORT')");
interpreter.exec(buffer.toString());
}
public static void main(String[] args) {
new EmbeddedWLST();
connect();
PyObject cmo = interpreter.get("cmo");
String command = getLogs();
System.out.println("Executing Get Logs");
interpreter.exec(command);
System.out.println("Getting Output Object");
PyObject output = interpreter.get("output");
System.out.println(output.getClass());
System.out.println(output);
}
private static String getLogs() {
StringBuffer buf = new StringBuffer();
buf.append( "output = displayLogs(returnData=1)\n" );
return buf.toString();
}
}
最佳答案
更新
您寻找的一切生活在:
<install dir>/oracle_common/common/wlst
一个简单的
grep -R displayLogs *
返回了您需要的python模块:<install dir>/oracle_common/common/wlst/oracle-logging.py
您将需要在类路径中包含脚本所需的jar,特别是在
ojdl.jar
下找到的日志jar <install dir>/oracle_common/modules/oracle.odl
。通过比较以下脚本发现了以上信息(我使用的是10.3.6):
此脚本
<install dir>/wlserver_10.3/common/bin/wlst.sh
失败,并显示:wls:/offline> listLogs()
Traceback (innermost last):
File "<console>", line 1, in ?
NameError: listLogs
此脚本
<install dir>/oracle_common/common/bin/wlst.sh
成功(并且具有比上述脚本更多的选项):wls:/offline> listLogs()
Not connected to a Weblogic server. Connect to a Weblogic server first.
确保您设置了与第二个脚本相同的jar和属性。