我們都知道在當前的情況下使用 slf4j 來定義日誌基本上都是標配了。
如果下面的語句:
private static final Logger logger = LoggerFactory.getLogger(Dom4JParserUnitTest.class);
但是有時候,我們還會遇到
Log log = LogFactory.getLog(CLASS.class);
這個語句。
上面 2 個語句有什麼不同呢?
解答
最主要的不同是使用的 API 不同,LogFactory 是 commons-logging 的 API。
這個 API 已經有多年沒有更新了。
雖然可能還有不少項目,目前還在使用中,但是如果可能的話,還是儘量使用 slf4j 的 API 吧。
如果你想寫成:
private static final Logger log= LoggerFactory.getLogger(Dom4JParserUnitTest.class);
這樣可以嗎?
當然是可以的,只是後面的你的使用就只能用 log 了,這個可能會與 LogFactory 中定義的 log 搞混。
所以很多項目的日誌,如果使用了 slf4j 的話,通常都會使用 logger。