일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- idToken
- 양방향 매핑
- 순환참조
- C++
- Loss Function
- JPA
- react native
- google 로그인
- OG tag
- @Transactional
- google cloud
- STT
- Expo
- google login
- Spring
- 커스텀 데이터 학습
- YOLOv5
- marksense.ai
- javascript
- skt fellowship 3기
- html
- 졸프
- Spring Boot
- AWS
- 코드업
- yolo
- 2021 제9회 문화공공데이터 활용경진대회
- pandas
- oauth
- matplotlib
- Today
- Total
민팽로그
log 설정 본문
배포 환경에서 발생하는 쿼리나 오류 로그를 알 수 없어 파일에 저장하는 김에, 개발 환경과 배포 환경의 로그 환경을 분리하여 설정하게 됨.
https://livenow14.tistory.com/64
https://oingdaddy.tistory.com/256
요로캐 참고했음.
spring boot는 application-properties에 적힌 로그 설정 먼저 확인 후 resources 폴더에 있는 logback-spring.xml을 적용.
1) logback-spring.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
<include resource="org/springframework/boot/logging/logback/console-appender.xml" />
<include resource="logback-file.xml"/>
<root level="info">
<springProfile name="local">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
</springProfile>
<springProfile name="service">
<appender-ref ref="FILE"/>
</springProfile>
<springProfile name="real">
<appender-ref ref="CONSOLE"/>
</springProfile>
</root>
</configuration>
이런 식으로 작성했음.
콘솔 로그는 기본 설정을 그대로 적용했고 파일 로그만 커스텀하여 사용. -> logback-file.xml
루트 레벨은 info로, 로컬 DB를 사용하는 프로필은 콘솔과 파일 로그 출력, 배포된 서비스가 사용하는 프로필은 파일에만 출력, 테스트 용으로 실제 DB를 사용하는 프로필은 콘솔에만 출력하도록 설정.
2)logback-file.xml
<?xml version="1.0" encoding="UTF-8"?>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level ${PID:-} --- [%15thread] %logger.%M: %msg %n</pattern>
<charset>UTF-8</charset>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_PATH}/%d{yyyy-MM-dd}_%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
</appender>
콘솔과 출력 패턴을 맞춤.
LOG_PATH 폴더 아래에 연-월-일_번호.log 파일을 생성하여 최대 100MB를 넘지 않도록 설정.
3) application.properties
logging.level.org.hibernate.SQL= DEBUG
logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
위 두 줄을 추가하여 전체 프로필이 사용할 로그를 설정.
4) application-local.properties
logging.file.path=./log
logging.logback.rollingpolicy.max-history=2
위와 같이 프로필마다 LOG_PATH의 값과 max-history 값을 지정해줌.

이런 식으로 파일에 로그 관리 가능!
서비스 환경에서도 파일에 로그가 기록되도록 설정 완료.
'프로젝트 > 감성 스팟 가이드(2022 한이음)' 카테고리의 다른 글
순환 참조 문제 해결: DTO 사용 (0) | 2022.07.31 |
---|---|
[JPA] N+1 문제 (0) | 2022.07.31 |
MZ와 "가보자고" : 프로젝트 준비 과정 (0) | 2022.07.31 |