JavaRush /Java Blog /Random-TW /我們將日誌記錄連接到 JavaRush 專案(slf4f 和 log4j)
Дмитрий Яковенко
等級 35
Москва

我們將日誌記錄連接到 JavaRush 專案(slf4f 和 log4j)

在 Random-TW 群組發布
您可以在我的這篇文章 中了解如何將 Maven 連接到您的 JavaRush 專案。以下假設您知道如何執行此操作。 如果我們想使用 slf4j,那麼我們需要一個依賴項:
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.30</version>
</dependency>
之後我們做:
public static void main(String[] args) throws IOException {
    Logger logger = LoggerFactory.getLogger(Solution.class);
    logger.info("hello world!");
}
我們得到錯誤:
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
這通常是合乎邏輯的。slf4j 是包裝器,但是我們要用什麼來包裝它呢?沒有什麼?好吧,我們遇到了一個錯誤。您可以將其包裝在以下其中一項:log4j、util.logging、NOP、System.err、JCL、logback。原始說明中有更多詳細資訊。讓我們來看看 log4j 和 System.err 的範例: 1) 讓我們從簡單的 System.err 開始。為此,請將此依賴項 (slf4j-simple) 新增至上一個相依性 (slf4j-api)。
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>1.7.30</version>
</dependency>
我們採用相同的版本,截至 2021 年 5 月 10 日,版本為 1.7.30。如果您從https://mvnrepository.com/取得依賴項,請不要忘記刪除
<scope>test</scope>
否則,您的日誌僅在測試中有效。 2)現在讓我們嘗試配置 log4j,為此我們需要添加 2 個依賴項:log4j 本身以及 slf4j 和 log4j 之間的一層(slf4j-log4j12)。它看起來像這樣:
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.30</version>
</dependency>
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>
很明顯,我們需要刪除 (slf4j-simple),以便 slf4j 不會對它應該使用哪個記錄器感到困惑。並保留 (slf4j-api),因為這是 slf4j。關於2個新增的依賴項。log4j我們正在添加舊的(從2012年5月開始,我不知道為什麼,你可以嘗試其他的)。它的版本是1.2.17。為了讓 slf4j 能夠使用它,您需要一個適當的圖層 - slf4j-log4j12,其中最後一個字元 (12) 表示 log4j 版本。在這種情況下,slf4j-api 和 slf4j-log4j12 的版本應該是 1.7.30 - 目前最新的穩定版本。連接依賴項並更新 Maven 專案後。要讓 log4j 正常運作,您還需要做兩件事:1)設定設定檔。我們閱讀、選擇、複製。 2)工作前讀取log4j配置:
PropertyConfigurator.configure("d:\\Java\\JavaRushTasks\\4.JavaCollections\\log4j.properties");
好吧,或者你有文件的地方。如果您想查看所有日誌,請不要忘記將日誌記錄等級設為「全部」。我們在簡歷中添加了 - log4j 和 slf4j。你太美了!如果有幫助 - 喜歡,訂閱,響鈴!)))
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION