WebSphere:无法同时更改stderrfilname和stdoutfilename

时间:2017-07-10 16:41:31

标签: websphere stdout native jython wsadmin

在WebSphere Application Server 8.5.5中,我在从wsadmin jython脚本设置native_stdout和native_stderr日志路径时遇到问题。 每次我设置一条路径,另一条路径被消隐。即设为null。 我认为我需要形成一行代码同时设置两个路径,但如果可能的话,无法创建正确的语法。 产生一个路径更改的代码如下所示:

srv = AdminConfig.getid('/Cell:mycell/Node:mynode/Server:server1/')
processDef = AdminConfig.list('JavaProcessDef', srv)
AdminConfig.modify(processDef, [['ioRedirect', [['stderrFilename', '${LOG_ROOT}/server1/new_stderr.log']]]])
AdminConfig.save()

这样可以正常工作,但是当我使用相同的脚本来设置stdoutFilename时,它会使先前设置的stderrFilename空白。

似乎没有区别我使用save提交更改。

对此问题的任何帮助都会受到极大的欢迎!

1 个答案:

答案 0 :(得分:0)

你是对的,即使其他地方的手册警告AdminConfig.modify()可能会在你不期望的时候附加到列表中。我观察到同样的事情。

这是您想要安全的模式,清除它并同时设置两个属性:

AdminConfig.modify(processDef, [['ioRedirect', []]])
AdminConfig.modify(processDef, [['ioRedirect', [['stderrFilename', '${SERVER_LOG_ROOT}/my_stderr.log'], ['stdoutFilename', '${SERVER_LOG_ROOT}/my_stdout.log']]]])

在此之后,您可以进行简单验证:

print AdminConfig.showall(processDef)

但仔细观察输出,因为它不是很漂亮的