Log4J 2 구현에서 SLF4J를 사용하도록 Gradle 애플리케이션을 구성하는 방법은 무엇입니까?

커트 픽

Log4j 2 구현과 함께 SLF4J를 사용하도록 Gradle 프로젝트 (Lombok 주석 프로세서 사용)를 구성하려고합니다. 사용 gradle init및 선택 을 시작한 프로젝트의 application구조는 다음과 같습니다.

.
├── app
│   ├── build
│   │   ├── classes
│   │   │   └── java
│   │   │       └── main
│   │   │           └── log4j
│   │   │               └── App.class
│   │   ├── generated
│   │   │   └── sources
│   │   │       ├── annotationProcessor
│   │   │       │   └── java
│   │   │       │       └── main
│   │   │       └── headers
│   │   │           └── java
│   │   │               └── main
│   │   └── tmp
│   │       └── compileJava
│   │           └── source-classes-mapping.txt
│   ├── build.gradle
│   └── src
│       ├── main
│       │   ├── java
│       │   │   └── log4j
│       │   │       └── App.java
│       │   └── resources
│       └── test
│           ├── java
│           │   └── log4j
│           │       └── AppTest.java
│           └── resources
├── gradle
│   └── wrapper
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── log4j2.xml
└── settings.gradle

log4j2.xml프로젝트 디렉토리에 파일을 넣었습니다 . https://logging.apache.org/log4j/2.x/manual/configuration.html 의 자동 구성 섹션에있는 9 단계에 따르면 ,

JSON 파일을 찾을 수없는 경우 XML ConfigurationFactory는 클래스 경로에서 log4j2.xml을 찾으려고 시도합니다.

build.gradle필요한 종속성이 있습니다.

/*
 * This file was generated by the Gradle 'init' task.
 *
 * This generated file contains a sample Java application project to get you started.
 * For more details take a look at the 'Building Java & JVM projects' chapter in the Gradle
 * User Manual available at https://docs.gradle.org/6.8.1/userguide/building_java_projects.html
 */

plugins {
    // Apply the application plugin to add support for building a CLI application in Java.
    id 'application'
}

repositories {
    // Use JCenter for resolving dependencies.
    jcenter()
}

dependencies {
    // Use JUnit test framework.
    testImplementation 'junit:junit:4.13'

    // This dependency is used by the application.
    implementation 'com.google.guava:guava:29.0-jre'

    implementation group: 'org.slf4j', name: 'slf4j-api', version: '2.0.0-alpha1'
    implementation 'org.apache.logging.log4j:log4j-slf4j18-impl:2.14.0'

    compileOnly 'org.projectlombok:lombok:1.18.16'
    annotationProcessor 'org.projectlombok:lombok:1.18.16'

    testCompileOnly 'org.projectlombok:lombok:1.18.16'
    testAnnotationProcessor 'org.projectlombok:lombok:1.18.16'
}

application {
    // Define the main class for the application.
    mainClass = 'log4j.App'
}

그리고 App클래스 자체입니다

package log4j;

import lombok.extern.slf4j.Slf4j;

@Slf4j
public class App {
    public String getGreeting() {
        return "Hello World!";
    }

    public static void main(String[] args) {
        log.info("Printing a greeting...");
        System.out.println(new App().getGreeting());
    }
}

문제는을 사용하여 응용 프로그램을 실행 ./gradlew run하면 log.info()줄을 인쇄하지 않는다는 것입니다 .

> ./gradlew run

> Task :app:run
Hello World!

으로 변경 log.error()하면 기록됩니다.

> ./gradlew run

> Task :app:run
19:26:50.782 [main] ERROR log4j.App - Printing a greeting...
Hello World!

구성 파일 trace에서 수준을 log4j2.xml설정 했으므로

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </Console>
    </Appenders>
    <Loggers>
        <Root level="trace">
            <AppenderRef ref="Console"/>
        </Root>
    </Loggers>
</Configuration>

info구성 파일이 '선택'된 경우 표시되는 수준 로그를 제안 합니다. 이것은 그것이 수업 경로에 없다는 것을 나에게 제안합니다. 나는 그것을 app디렉토리에 복사하려고 시도 했지만 아무 소용이 없습니다. log4j2.xmlLog4J 2를 올바르게 구성 하려면 구성 파일이 어디에 있어야 합니까?

thokuest

들어 log4j2.xml클래스 패스에 끝내고, 파일은로 이동해야합니다 src/main/resources. 공식 문서에서 리소스에 대해 자세히 알아보십시오.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Eclipse RCP에서 slf4j 1.7.7보다 log4j 2.1.0을 사용하는 방법은 무엇입니까? "ERROR StatusLogger Log4j2에서 로깅 구현을 찾을 수 없습니다."

분류에서Dev

Hibernate를 사용하는 Java 웹 애플리케이션에 Log4j를 구성하는 방법은 무엇입니까?

분류에서Dev

slf4j 로거 내부에 log4j 로거를 래핑하는 방법은 무엇입니까?

분류에서Dev

Slf4j에 대해 코딩하는 동안 사용자 지정 로그 파일 이름을 사용하도록 Log4j (1 또는 2)를 구성하는 방법

분류에서Dev

log4j 구성 xml을 상속하는 방법은 무엇입니까?

분류에서Dev

Thymeleaf를 사용하도록 SpringMVC 4 애플리케이션을 올바르게 구성하는 방법은 무엇입니까?

분류에서Dev

AWS에서 애플리케이션을 사용하도록 도메인 / DNS를 구성하는 방법은 무엇입니까?

분류에서Dev

pyspark에서 log4j를 사용하여 특정 로거의 로그 수준을 구성하는 방법은 무엇입니까?

분류에서Dev

지난 n 일 동안 만 로그 파일을 유지하도록 log4j를 구성하는 방법은 무엇입니까?

분류에서Dev

log4j-web.jar를 사용하여 웹 애플리케이션에서 Log4j2 구성

분류에서Dev

log4j-web.jar를 사용하여 웹 애플리케이션에서 Log4j2 구성

분류에서Dev

이 Grizzly / Jersey 애플리케이션에서 log4j를 활성화하는 방법

분류에서Dev

Log4J 2에서 메시지를 수정하는 방법은 무엇입니까?

분류에서Dev

Net Beans에서 log4j 2를 설정하는 방법은 무엇입니까?

분류에서Dev

Maven Launch4j 플러그인-.exe에서 사용하는 jar를 제외하도록 구성하는 방법은 무엇입니까?

분류에서Dev

Spring 부트에서 log4j.xml 구성 파일을 사용하는 방법은 무엇입니까?

분류에서Dev

log4j 2를 프로그래밍 방식으로 비동기 모드로 구성하는 방법은 무엇입니까?

분류에서Dev

Android에서 애플리케이션 간 자동 완성을 구현하는 방법은 무엇입니까?

분류에서Dev

내 애플리케이션에서 CHANGE_TRACKING_IS_COLUMN_IN_MASK를 구현하는 방법은 무엇입니까?

분류에서Dev

그것은 가치가 log4j2으로 SLF4J를 사용하는 것입니다

분류에서Dev

MVC 4 애플리케이션에서 CultureNotFoundException을 해결하는 방법은 무엇입니까?

분류에서Dev

기존 slf4j 로거를 kotlin 로거에 래핑하는 방법은 무엇입니까?

분류에서Dev

Vue 및 Java EE를 사용하여 웹 애플리케이션에서 채팅 시스템을 구현하는 방법은 무엇입니까?

분류에서Dev

vue 애플리케이션에서 Paypal 구독을 구현하는 방법은 무엇입니까?

분류에서Dev

모바일 애플리케이션에서 친구 추천을 구현하는 방법은 무엇입니까?

분류에서Dev

콘솔 애플리케이션에서 사용할 YouTube 자격 증명을 인증하는 웹 사이트를 구성하는 방법은 무엇입니까?

분류에서Dev

log4j에, SLF4J와 logback의 차이점은 무엇입니까?

분류에서Dev

React 단일 페이지 애플리케이션을 위해 PKCE로 OAuth2 Authorization 코드 부여를 구현하는 방법은 무엇입니까?

분류에서Dev

log4j2를 사용할 때 타사 jar에 사용되는 "org / apache / log4j / Level"클래스를 처리하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    Eclipse RCP에서 slf4j 1.7.7보다 log4j 2.1.0을 사용하는 방법은 무엇입니까? "ERROR StatusLogger Log4j2에서 로깅 구현을 찾을 수 없습니다."

  2. 2

    Hibernate를 사용하는 Java 웹 애플리케이션에 Log4j를 구성하는 방법은 무엇입니까?

  3. 3

    slf4j 로거 내부에 log4j 로거를 래핑하는 방법은 무엇입니까?

  4. 4

    Slf4j에 대해 코딩하는 동안 사용자 지정 로그 파일 이름을 사용하도록 Log4j (1 또는 2)를 구성하는 방법

  5. 5

    log4j 구성 xml을 상속하는 방법은 무엇입니까?

  6. 6

    Thymeleaf를 사용하도록 SpringMVC 4 애플리케이션을 올바르게 구성하는 방법은 무엇입니까?

  7. 7

    AWS에서 애플리케이션을 사용하도록 도메인 / DNS를 구성하는 방법은 무엇입니까?

  8. 8

    pyspark에서 log4j를 사용하여 특정 로거의 로그 수준을 구성하는 방법은 무엇입니까?

  9. 9

    지난 n 일 동안 만 로그 파일을 유지하도록 log4j를 구성하는 방법은 무엇입니까?

  10. 10

    log4j-web.jar를 사용하여 웹 애플리케이션에서 Log4j2 구성

  11. 11

    log4j-web.jar를 사용하여 웹 애플리케이션에서 Log4j2 구성

  12. 12

    이 Grizzly / Jersey 애플리케이션에서 log4j를 활성화하는 방법

  13. 13

    Log4J 2에서 메시지를 수정하는 방법은 무엇입니까?

  14. 14

    Net Beans에서 log4j 2를 설정하는 방법은 무엇입니까?

  15. 15

    Maven Launch4j 플러그인-.exe에서 사용하는 jar를 제외하도록 구성하는 방법은 무엇입니까?

  16. 16

    Spring 부트에서 log4j.xml 구성 파일을 사용하는 방법은 무엇입니까?

  17. 17

    log4j 2를 프로그래밍 방식으로 비동기 모드로 구성하는 방법은 무엇입니까?

  18. 18

    Android에서 애플리케이션 간 자동 완성을 구현하는 방법은 무엇입니까?

  19. 19

    내 애플리케이션에서 CHANGE_TRACKING_IS_COLUMN_IN_MASK를 구현하는 방법은 무엇입니까?

  20. 20

    그것은 가치가 log4j2으로 SLF4J를 사용하는 것입니다

  21. 21

    MVC 4 애플리케이션에서 CultureNotFoundException을 해결하는 방법은 무엇입니까?

  22. 22

    기존 slf4j 로거를 kotlin 로거에 래핑하는 방법은 무엇입니까?

  23. 23

    Vue 및 Java EE를 사용하여 웹 애플리케이션에서 채팅 시스템을 구현하는 방법은 무엇입니까?

  24. 24

    vue 애플리케이션에서 Paypal 구독을 구현하는 방법은 무엇입니까?

  25. 25

    모바일 애플리케이션에서 친구 추천을 구현하는 방법은 무엇입니까?

  26. 26

    콘솔 애플리케이션에서 사용할 YouTube 자격 증명을 인증하는 웹 사이트를 구성하는 방법은 무엇입니까?

  27. 27

    log4j에, SLF4J와 logback의 차이점은 무엇입니까?

  28. 28

    React 단일 페이지 애플리케이션을 위해 PKCE로 OAuth2 Authorization 코드 부여를 구현하는 방법은 무엇입니까?

  29. 29

    log4j2를 사용할 때 타사 jar에 사용되는 "org / apache / log4j / Level"클래스를 처리하는 방법은 무엇입니까?

뜨겁다태그

보관