JavaRush /Java 博客 /Random-ZH /我们将日志记录连接到 JavaRush 项目(slf4f 和 log4j)
Дмитрий Яковенко
第 35 级
Москва

我们将日志记录连接到 JavaRush 项目(slf4f 和 log4j)

已在 Random-ZH 群组中发布
您可以在我的这篇文章 中了解如何将 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