差異處
這裏顯示兩個版本的差異處。
Both sides previous revision 前次修改 下次修改 | 前次修改 | ||
java:junit:tech:capture_log4j_output [2018/04/11 23:32] tony |
java:junit:tech:capture_log4j_output [2023/06/25 09:48] (目前版本) |
||
---|---|---|---|
行 8: | 行 8: | ||
如果針對測試提供不同的log4j設定檔,也不是那麼的方便,因此我分享給大家另外一種方法,可以將Log4j訊息導到StringBuffer中以做驗證。 | 如果針對測試提供不同的log4j設定檔,也不是那麼的方便,因此我分享給大家另外一種方法,可以將Log4j訊息導到StringBuffer中以做驗證。 | ||
===== How to? ===== | ===== How to? ===== | ||
+ | 主要技巧是透過LogManager在測試之前加入WriterAppender,而WriterAppender會使用我給予的OutputStreamWriter: | ||
<code java> | <code java> | ||
private StringBuffer mSB; | private StringBuffer mSB; | ||
行 28: | 行 29: | ||
} | } | ||
</code> | </code> | ||
+ | 當待測程式碼使用了log4j,就會透過OutputStreamWriter將內容寫入[[java:junit:tech:capture_systemout|StringBufferOutputStream]],而StringBufferOutputStream內部有一個StringBuffer記載內容以供之後驗證。\\ | ||
+ | \\ | ||
+ | 當測試之後,不能忘記移除測試用的Appender: | ||
<code java> | <code java> | ||
@After | @After |