log4j2로 메일을 보내는 스프링 부트

gmv92

log4j2를 사용하여 스프링 부팅 응용 프로그램에서 이메일을 통해 오류 수준의 로그를 보내고 싶습니다.

이것에 대한 무한 자습서를 읽은 후에는 이것에 도달 할 수 없습니다.

localhost에 Docker SMTP 서버가 있으며 다음은 내 구성 파일입니다.

pom.xml

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.2.RELEASE</version>
    </parent>
    <dependencies>
    <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
        </dependency>
        <!-- Add Log4j2 Dependency -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-log4j2</artifactId>
        </dependency>

        <!-- Needed for SMTP appender -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>
        ...
        ...

log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="trace">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout
                pattern="%style{%d{ISO8601}}{black} %highlight{%-5level }[%style{%t}{bright,blue}] %style{%C}{bright,yellow}: %msg%n%throwable" />
        </Console>
        <SMTP name="MailAppender"
            subject="error log"
            to="[email protected]"
            from="[email protected]"
            smtpHost="localhost"
            smtpPort="25"
            bufferSize="10"
            ignoreExceptions="false"
            smtpDebug="true"
            >
            <ThresholdFilter level="ERROR" onMatch="ACCEPT"/>
            <PatternLayout>
                <pattern>%d %p [%C] [%t] %m%n</pattern>
            </PatternLayout>
        </SMTP>
    </Appenders>

    <Loggers>
        <Root level="all">
            <AppenderRef ref="MailAppender" level="debug" />
        </Root>
    </Loggers>
</Configuration>

application.yml

spring:
  mail:
    host: localhost
    port: 25
    auth: false
    properties:
      mail:
        transport:
          protocol: smtp
        smtp:
          auth: false
          host: localhost
          port: 25

이 구성으로 log4j2는 메일을 보낼 수 없습니다. 분명히 log4j2는 시작시 올바르게 구성을 취합니다.

2020-09-24 18:31:32,780 restartedMain DEBUG createAppender(Configuration(/XXX/target/classes/log4j2.xml), name="MailAppender", to="[email protected]", cc="null", bcc="null", from="[email protected]", replyTo="null", subject="error log", smtpProtocol="null", smtpHost="localhost", smtpPort="25", smtpUsername="null", smtpPassword="c0323768f8f5dc63ac2d877d8e65de66", smtpDebug="true", bufferSize="10", PatternLayout(%d %p [%C] [%t] %m%n), ThresholdFilter(ERROR), ignoreExceptions="false")

그러나 이메일을 보낼 수 없습니다.

가장 재미있는 점은 스프링 메일을 사용하여 동일한 구성으로 메일을 보낼 수 있다는 것입니다 (JavaMailSender API 사용). 그래서 log4j2 구성에 문제가 있다고 생각합니다. 어떤 이유로 log4j2가 메일 구성을 무시할 수 있습니까?

누구든지 나를 도울 수 있습니까?

gmv92

좋아, 마침내 해결했습니다. 매번 작동했지만 내 애플리케이션 로거를 인식하지 못하므로 스프링 프레임 워크 로그 이름 (예 : org.springframework.boot)으로 만 작동합니다.

내 SMTPAppender를 참조하는 새 로거 추가를 해결했습니다.

        <Logger name="com.myapp" level="all" additivity="false">
            <AppenderRef ref="AsyncMailer" level="debug" />
        </Logger>

그리고 log.error ( "XXX")에서 로그 정보와 함께 메일을 보냅니다.

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

스프링 부트 메트릭이 평균과 절대 값을 CSV로 내보내도록하는 방법

분류에서Dev

서블릿 3.0을 사용하는 스프링 웹 앱의 Log4j2

분류에서Dev

이미 롤링 된 파일에 로그를 쓰는 Log4j2

분류에서Dev

angularjs에서 스프링 부트 애플리케이션의 스프링 컨트롤러로 json을 보내는 동안 예외 발생

분류에서Dev

Log4j2-스프링 테스트 로거를 찾을 수 없음

분류에서Dev

스프링 부트 및 병렬 스트림을 사용하여 이메일 보내기

분류에서Dev

오이로 스프링 부트 프로파일을 활성화하는 방법

분류에서Dev

출력을 파일로 보낼 때 log4j2 문제

분류에서Dev

Log4j2 : 로깅 구성 파일이 있는지 여부를 콘솔 로그에서 찾는 방법

분류에서Dev

Log4j2 RollingFile Appender-각 로그 파일의 시작 부분에 사용자 지정 정보 추가

분류에서Dev

스프링 부트 프로젝트가있는 Modbus 펄스 코일

분류에서Dev

스프링 부트 보안을 사용하여 CSS 및 JS 파일로드

분류에서Dev

bash 스크립트의 일부를 외부 파일로 내보내는 방법

분류에서Dev

어떻게 제대로 봄 부팅 및 log4j2을 설정하는 방법?

분류에서Dev

yaml 파일 내부의 스프링 부트로드 속성 파일

분류에서Dev

Google 시트의 값을 이메일로 보내는 스크립트

분류에서Dev

메일을 보내지 않는 PHP 메일 스크립트

분류에서Dev

부트 스트랩 프레임 워크에서 이메일 보내기 내 오류는 메일이 성공적으로 전송되었지만 메일을받지 못했다는 것입니다.

분류에서Dev

스프링 부트 또는 스프링 보안 메모리 누수 가능성

분류에서Dev

이메일을 통해 Xcode 프로젝트를 보내는 방법

분류에서Dev

사용자가 업로드 한 CSV 파일을 읽는 스프링 부트

분류에서Dev

스프링 부트는 파일을 jar로 패키징하지 않습니다.

분류에서Dev

스프링 부트 응용 프로그램의 .log 파일에 stdout 문을 작성하는 방법

분류에서Dev

워드 프레스로 첨부 파일이있는 이메일 보내기

분류에서Dev

log4j2를 사용하는 여러 스레드에 대한 다른 로그 파일

분류에서Dev

Log4j2 : SMTPAppender가 오류 또는 치명적인 수준의 메일을 보내지 않습니다.

분류에서Dev

스프링 이메일로 이메일 보내기

분류에서Dev

Log4j2에서 누락 된 클래스 이름-스프링 부트 1.3.7

분류에서Dev

Neo4J-스프링 부트-스프링 보안-Java 구성

Related 관련 기사

  1. 1

    스프링 부트 메트릭이 평균과 절대 값을 CSV로 내보내도록하는 방법

  2. 2

    서블릿 3.0을 사용하는 스프링 웹 앱의 Log4j2

  3. 3

    이미 롤링 된 파일에 로그를 쓰는 Log4j2

  4. 4

    angularjs에서 스프링 부트 애플리케이션의 스프링 컨트롤러로 json을 보내는 동안 예외 발생

  5. 5

    Log4j2-스프링 테스트 로거를 찾을 수 없음

  6. 6

    스프링 부트 및 병렬 스트림을 사용하여 이메일 보내기

  7. 7

    오이로 스프링 부트 프로파일을 활성화하는 방법

  8. 8

    출력을 파일로 보낼 때 log4j2 문제

  9. 9

    Log4j2 : 로깅 구성 파일이 있는지 여부를 콘솔 로그에서 찾는 방법

  10. 10

    Log4j2 RollingFile Appender-각 로그 파일의 시작 부분에 사용자 지정 정보 추가

  11. 11

    스프링 부트 프로젝트가있는 Modbus 펄스 코일

  12. 12

    스프링 부트 보안을 사용하여 CSS 및 JS 파일로드

  13. 13

    bash 스크립트의 일부를 외부 파일로 내보내는 방법

  14. 14

    어떻게 제대로 봄 부팅 및 log4j2을 설정하는 방법?

  15. 15

    yaml 파일 내부의 스프링 부트로드 속성 파일

  16. 16

    Google 시트의 값을 이메일로 보내는 스크립트

  17. 17

    메일을 보내지 않는 PHP 메일 스크립트

  18. 18

    부트 스트랩 프레임 워크에서 이메일 보내기 내 오류는 메일이 성공적으로 전송되었지만 메일을받지 못했다는 것입니다.

  19. 19

    스프링 부트 또는 스프링 보안 메모리 누수 가능성

  20. 20

    이메일을 통해 Xcode 프로젝트를 보내는 방법

  21. 21

    사용자가 업로드 한 CSV 파일을 읽는 스프링 부트

  22. 22

    스프링 부트는 파일을 jar로 패키징하지 않습니다.

  23. 23

    스프링 부트 응용 프로그램의 .log 파일에 stdout 문을 작성하는 방법

  24. 24

    워드 프레스로 첨부 파일이있는 이메일 보내기

  25. 25

    log4j2를 사용하는 여러 스레드에 대한 다른 로그 파일

  26. 26

    Log4j2 : SMTPAppender가 오류 또는 치명적인 수준의 메일을 보내지 않습니다.

  27. 27

    스프링 이메일로 이메일 보내기

  28. 28

    Log4j2에서 누락 된 클래스 이름-스프링 부트 1.3.7

  29. 29

    Neo4J-스프링 부트-스프링 보안-Java 구성

뜨겁다태그

보관