[英]logger java is not going through System.out
我有一個使用 java api 的記錄器,在單元測試中,我將標准的輸出設置為我的輸出,並檢查是否正在打印消息(日志、異常等...)我的代碼是
ByteArrayOutputStream mockedOutput = new ByteArrayOutputStream();
System.setOut(new PrintStream(mockedOutput));
System.setErr(new PrintStream(mockedOutput));
但是日志沒有在輸出中被捕獲,如果我檢查控制台(eclipse,或通過 maven 運行),日志在那里意味着沒有通過我的輸出。 如果替換 system.out.print 的日志,那么它就可以工作,我也可以看到異常等等,只有使用 java API 記錄的內容不會在 mockedOutput 中捕獲。
有沒有人有想法?,我的線索不多了。
包含更多代碼和 logging.properties 文件,因為輸出取決於您的記錄器和處理程序的創建時間。
如果您依賴 ConsoleHandler 寫入流,則必須延遲記錄器的創建。 這是因為ConsoleHandler 將捕獲 System.err 的快照。
在沒有看到您的代碼的情況下,您需要確保:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.