現象:Windows Server 2003 運行 Tomcat 5.5,代碼中有 System.out.println 或 e.printStackTrace() 等控制台輸出時,當前線程卡住、控制台無輸出。必須在伺服器上按下空白鍵或 Enter 才恢復輸出與線程運行。
Windows 命令提示字元視窗預設開啟快速編輯模式。當滑鼠在視窗中點選/拖曳選取文字時,視窗進入「選取模式」,**導致寫入標準輸出的線程阻塞**,直到按鍵釋放選取狀態。Tomcat 作為服務在背景運行,若控制台視窗被意外觸發選取模式 (甚至無人操作時因系統行為觸發),所有標準輸出線程將集體凍結。



log4j/logback 等日誌框架輸出至檔案,並設定 rolling policy 避免單檔過大一個隱藏的視窗屬性設定,可能導致生產系統「莫名其妙」凍結。關閉快速編輯模式,或更徹底地移除對控制台輸出的依賴,是解決此類問題的正確姿勢。