System.out.print的優(yōu)點:直觀、方便。
Log的優(yōu)點:異步、解耦、靈活、策略多。
提到System.out.print,除了感覺到方便之外,還會想到其他的優(yōu)點嗎?似乎也就這個優(yōu)點,syso快捷鍵瞬間就是一條打印語句,很順手的一件事,除了這個感覺外,似乎也沒有其他特別的感受了。
System.out.print和java運行程序運行在同一線程,也就是說,業(yè)務程序會等待System.out的動作,導致資源被占用,log4j、logback等日志工具進行調試信息的打印,這類工具是異步線程的,不會使程序處于等待狀態(tài)。
System.out.print是在控制臺輸出,只能輸出到控制臺,功能上線后,總不能一直盯著控制臺吧,而且日志文件需要保留,以供日后分析,是需要一套管理規(guī)范的,即便使用tomcat服務器,System.out會輸出到catalina.out文件,catalina.out文件也不會一直存在,需要定期清空,如果不清空,大文件的讀寫也是挺影響性能的。說到這里,System.out.print寫入的文件只有一個,對于一個文件的讀寫,這個io肯定會排隊寫,且System.out.print在當前線程,肯定對性能會有稍微的影響。
程序中充斥著大量的System.out.print打印代碼是相當不規(guī)范的。