programing

log4j2를 사용한 스프링 부트 로깅?

lovejava 2023. 6. 28. 21:14

log4j2를 사용한 스프링 부트 로깅?

사용 중spring-boot-starter구성하고 싶습니다.log4j2.xml비동기 + 다른 내용을 다른 로그 파일에 기록합니다.

log4j2 파일을 만들었지만,Spring여전히 스프링 부트 기본 로깅을 사용합니다.로깅을 전환하려면 어떻게 해야 합니까?

더 좋은 방법이 있습니다.

  1. 로그백 로거 제외:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    
  2. log4j2 부팅 스타터 추가:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-log4j2</artifactId>
    </dependency>
    

출처: http://docs.spring.io/spring-boot/docs/1.5.1.RELEASE/reference/htmlsingle/ #how-configure-log4j-for-message

맛있게 드세요!

사용해 보십시오.

  1. 예를 들어 spring-boot-starter 로깅은 제외합니다.

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    
  2. 로깅 인터페이스에 대한 종속성 추가(예: slf4j)

    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-slf4j-impl</artifactId>
        <version>2.0.2</version>
    </dependency>
    
  3. 선택한 로깅 인터페이스를 가리키는 다른 로깅 구현을 추가합니다.

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jcl-over-slf4j</artifactId>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jul-to-slf4j</artifactId>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>log4j-over-slf4j</artifactId>
    </dependency>
    
  4. 대상 로깅 구현을 추가합니다.

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

효과가 있을 겁니다.

이것이 저에게 효과가 있었습니다.두 개의 추가 제외 항목이 있습니다.그렇지 않으면 응용 프로그램에서 log4j를 선택하지 않고 충돌이 발생했습니다.

실제 바인딩은 [ch.qos.logback.classic.util] 유형입니다.컨텍스트 선택기 정적 바인더]

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>1.0.0</version>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
        </exclusion>
        <exclusion>
            <artifactId>logback-classic</artifactId>
            <groupId>ch.qos.logback</groupId>
        </exclusion>
        <exclusion>
            <artifactId>log4j-over-slf4j</artifactId>
            <groupId>org.slf4j</groupId>
        </exclusion>            
    </exclusions>           
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>

언급URL : https://stackoverflow.com/questions/25683210/spring-boot-logging-with-log4j2