无法配置 log4j2 以在 VS Code 上登录 Maven 项目

Unable to configure log4j2 for logging in Maven project on VS Code

我在 pom.xml 中添加了依赖项:log4j-api (2.17.0) 和 log4j-core (2.17.0)。

Java Windows 10 上的版本是“17.0.1” 2021-10-19 LTS

我已经把文件 log4j2.yml 放在了 src/main/resources 文件夹中。但似乎从未读取过该文件。我能够登录到控制台,但它没有根据我在日志文件中配置的内容进行格式化。同样,我无法登录到文件,因为从未读取过配置文件。

我在 VS Code 上使用 Maven。应用程序本身相当简单:

package com.example;

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

/**
 * Hello world!
 *
 */
public class App 
{
    private static final Logger logger = LogManager.getLogger(App.class);

    public static void main( String[] args )
    {
        logger.error("Hello Logger!");
        System.out.println( "Hello World!" );
    }
}

实际执行结果如下:

C:\Users\userme\Documents\workspace\java-sample> c: && cd c:\Users\userme\Documents\workspace\java-sample && cmd /C ""C:\Program Files\Java\jdk-17.0.1\bin\java.exe" -XX:+ShowCodeDetailsInExceptionMessages @C:\Users\USERME\AppData\Local\Temp\cp_a2ngr445g97bq5yjwdq9bbcx.argfile com.example.App "        
23:13:36.471 [main] ERROR com.example.App - Hello Logger!
Hello World!

YAML 文件:

Configuration:
  name: Default
  Properties:
    Property:
      name: log-path
      value: "logs"
  Appenders:
    Console:
      name: Console_Appender
      target: SYSTEM_OUT
      PatternLayout:
        pattern: "[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n"
    File:
      name: File_Appender
      fileName: ${log-path}/logfile.log
      PatternLayout:
        pattern: "[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n"
  Loggers:
      Root:
        level: debug
        AppenderRef:
          - ref: Console_Appender
      Logger:
        - name: com.example.App
          level: debug
          AppenderRef:
            - ref: File_Appender
              level: debug

“小品英雄”再次来袭! :-) 来自 log4j2 Configuration reference:

Additional runtime dependencies are required for using YAML configuration files.

这些是(截至今天):

<jackson.version>2.14</jackson.version> <!-- 2021/12/26(, merry x-mas!) -->
<!-- ... -->
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>${jackson.version}</version>
<scope>runtime</scope> <!-- ! -->
<!-- ... -->
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<!-- As: -->
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-yaml</artifactId>
<!-- ... -->