我有一個問題,我還找不到答案。那麼兩條線有什麼區別?LoggerFactory vs Logger
private static final Logger LOGGER = LoggerFactory.getLogger(MyClass.class);
和
private static final Logger LOGGER = Logger.getLogger(MyClass.class);
,人們應該使用一個,爲什麼?謝謝。
我有一個問題,我還找不到答案。那麼兩條線有什麼區別?LoggerFactory vs Logger
private static final Logger LOGGER = LoggerFactory.getLogger(MyClass.class);
和
private static final Logger LOGGER = Logger.getLogger(MyClass.class);
,人們應該使用一個,爲什麼?謝謝。
你已經用slf4j和log4j這兩個標記了問題,所以我假設你的項目設置爲使用SLF4J並且它使用它的log4j綁定。
如果您在課堂上使用SLF4J綁定(頂部有import org.slf4j.Logger;
),那麼您需要使用LoggerFactory.getLogger
(並且您還需要import org.slf4j.LoggerFactory;
)。
如果您直接使用log4j(在班級頂部有import org.apache.log4j.Logger;
),則使用Logger.getLogger
。
通常情況下,讓SLF4J成爲用於所有日誌記錄命令的標準,並且擔心連接到實際的日誌記錄框架。所以,如果你的項目使用SLF4J,那麼使用SLF4J綁定。或者,如果你只是想直接使用log4j,那麼你可以直接使用它,也許你甚至不需要使用SLF4J庫。 (我自己是SLF4J的忠實粉絲,所以我建議將它用於一切,但這僅僅是我的意見。)
我在猜測,也許你的開發環境是自動選擇其中之一來導入,而且甚至可能會在不同類別中導入不同的Logger
,而您甚至沒有意識到它們並未使用相同的類別。