Log4j 实际上什么都不做?

发布于 2025-01-11 19:55:31 字数 1214 浏览 2 评论 0原文

我的配置文件是类路径的路径。至少我是这么认为的。我将 log4j.properties 文件放在 resources 文件夹中,而 log4j 对它不执行任何操作。即使我删除它,也不会出现错误。

任何人都可以看到我正在使用 maven

在此处输入图像描述

LoggerTest 的内容:

package com.dersimi.stella.logger;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class LoggerTest {
    public static void main(String[] args) {
        System.out.println("xxx");
        Logger logger = LogManager.getLogger(LoggerTest.class);
        logger.info("Hello this is an info message");
        System.out.println("xxx");
    }
}

程序输出:

xxx


xxx

log4j.properties 的内容:

log4j.rootLogger=INFO, console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.Threshold=INFO
log4j.appender.console.Target=System.out
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.conversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p - %m%n

在 pom.xml 中没有什么异常,只是依赖项org.apache.logging.log4j log4j-core 2.17.2,编译器源目标是16,无插件

My configuration file is path of the class path. At least I thought it is. I placed the log4j.properties file in the resources folder and log4j does nothing with it. Even if I delete it, no error occurs.

As anyone can see I'm using maven

enter image description here

Content of LoggerTest:

package com.dersimi.stella.logger;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class LoggerTest {
    public static void main(String[] args) {
        System.out.println("xxx");
        Logger logger = LogManager.getLogger(LoggerTest.class);
        logger.info("Hello this is an info message");
        System.out.println("xxx");
    }
}

Program output:

xxx


xxx

Content of log4j.properties:

log4j.rootLogger=INFO, console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.Threshold=INFO
log4j.appender.console.Target=System.out
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.conversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p - %m%n

In pom.xml is nothing out of the ordinary, just the dependency org.apache.logging.log4j log4j-core 2.17.2, compiler source target is 16, no plugins

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

空袭的梦i 2025-01-18 19:55:31

主要问题是您尝试对 log4j2 使用 log4j(第一个)配置。

首先,确保您具有以下依赖项:

<dependency>
  <groupId>org.apache.logging.log4j</groupId>
  <artifactId>log4j-core</artifactId>
  <version>2.17.0</version>
</dependency>
<dependency>
  <groupId>org.apache.logging.log4j</groupId>
  <artifactId>log4j-api</artifactId>
  <version>2.17.0</version>
</dependency>

其次,有一个名为 log4j2.properties 的文件,其内容如下:

status = warn

appender.console.type = Console
appender.console.name = LogToConsole
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = [%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n

rootLogger.level = info
rootLogger.appenderRef.stdout.ref = LogToConsole

参考:https://mkyong.com/logging/log4j2-properties-example/

The main problem is that you are trying to use log4j (the first one) configurations for log4j2.

In first place make sure you have the following dependencies:

<dependency>
  <groupId>org.apache.logging.log4j</groupId>
  <artifactId>log4j-core</artifactId>
  <version>2.17.0</version>
</dependency>
<dependency>
  <groupId>org.apache.logging.log4j</groupId>
  <artifactId>log4j-api</artifactId>
  <version>2.17.0</version>
</dependency>

Second, have a file named log4j2.properties with a content like this:

status = warn

appender.console.type = Console
appender.console.name = LogToConsole
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = [%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n

rootLogger.level = info
rootLogger.appenderRef.stdout.ref = LogToConsole

Reference: https://mkyong.com/logging/log4j2-properties-example/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文