spring boot // log 남기기 / 파일로 저장하기
참고
blog.naver.com/getinthere/221799123006
참고
https://blog.naver.com/getinthere/221799123006
현재 프로젝트
https://github.com/jaybon1/springwork/tree/master/logTest
--
밸리데이션 이용
--
--
밸리데이션 어노테이션 확인
https://gmlwjd9405.github.io/2018/12/02/spring-annotation-types.html
javax 것을 사용
어노테이션으로 밸리데이션 체크
--
컨트롤러에 테스트 매핑추가
--
포스트맨 테스트
--
컨트롤러에서 에러처리
--
포스트맨에서 확인
--
AOP 의존성추가
--
pom.xml에 추가
--
컨트롤러에서 에러처리 코드를 잘래내기
--
aop로 바인딩 어드바이스를 하기 위해 패키지와 파일 생성
--
Around로 처리
--
로그를 확인하기 위한 로거 생성
--
메시지를 띄우기 위해 적어주기
1. 에러가 난 클래스 이름과 메서드이름을 변수에 입력
2. 콘솔에 로그를 남긴다
--
--
이제 AOP로 warn이 뜨는 것만 파일로 낚아채보자
logback 설정파일 생성
--
--
예시코드 - 자신에 맞게 수정하여 사용하자
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property name="LOGS_ABSOLUTE_PATH" value="./logs" />
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>[%d{yyyy-MM-dd HH:mm:ss}:%-3relative][%thread] %-5level %logger{36} - %msg%n</Pattern>
</layout>
</appender>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOGS_ABSOLUTE_PATH}/logback.log</file>
<encoder>
<pattern>[%d{yyyy-MM-dd HH:mm:ss}:%-3relative][%thread] %-5level %logger{35} - %msg%n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOGS_ABSOLUTE_PATH}/logback.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>5MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>30</maxHistory>
</rollingPolicy>
</appender>
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
<!-- warn 설정시 warn info debug가 저장된다 -->
<logger name="com.jaybon.config.aop.warn" level="WARN">
<appender-ref ref="FILE" />
</logger>
</configuration>
[출처] springboot 23강 - AOP + logger(logback-spring.xml), AOP+BindingResult|작성자 getinthere
--
로그 주소
콘솔에 뜨는 방식
파일명이 바뀌며 폴더를 날짜별로 정리 - RollingFileAppender
LOGS_ABSOLUTE_PATH - 위에서 설정한 로그 주소
maxFileSize - 파일 용량
maxHistory - 로그 개수
에러레벨을 설정한다
DEBUG / INFO / WARN / ERROR 순서의 위험도
자신의 위험도 이상의 내용만 뜬다
--
aspect파일에서 예외를 발생시키면
--
콘솔에 로그가 찍히고
--
로그파일에 로그데이터가 저장되어 있다
--