2017-07-10 69 views
0

在WebSphere Application Server 8.5.5中,我遇到了設置wsadmin jython腳本的native_stdout和native_stderr日誌路徑時出現問題的問題。 每次我設置一條路徑,另一條路徑被清空。即設置爲空。 我假設我需要形成一行代碼,它可以同時設置兩條路徑,但如果這是可能的,則無法創建正確的語法。 產生一個路徑變化的代碼如下所示:WebSphere:無法同時更改stderrfilname和stdoutfilename

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先前設定。

這似乎沒有什麼區別,我用保存提交更改。

任何有關這個問題的幫助將大受歡迎!

回答

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) 

但是看着輸出緊密,因爲它不是漂亮的印刷

+0

棒極了!我敢肯定,在我的許多嘗試中,我一定嘗試過這種確切的語法,但錯過了結果。非常感謝您的及時迴應和幫助。 –