Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- springsecurity
- TDD
- 문제선택근거
- index
- 냄새라도
- 클린아키텍처
- 로그백
- 공통기술
- MVC요청플로우
- 이벤트핸들러this
- AOP
- 설정세팅
- DDD
- MVC
- 이벤트핸들러등록
- Ajax
- Transaction
- 커뮤니티서버
- 디스크i/o
- 전전긍긍
- JDBC
- SpringLegacy
- SEQUENCE
- string
- JPA
- 공통규약
- 단위테스트
- model
- OOP
- 사면초가
Archives
- Today
- Total
개발이군고구마
[전전긍긍 설정세팅] 6. 로그 설정 (#공통규약) 본문
728x90
실무에서 운영 에러나 각 부서의 오류 파악 일감을 맡게 되면 키바나 로그가 큰 도움이 된다.
로그를 통해 사용자들의 흔적을 추적하면 어디서 어떤 에러가 발생했는지 파악할 수 있기 때문이다.
그렇기 때문에 필요한 정보를 담은 로그를 적절한 위치에 넣어주는 것이 매우 중요한데.....................................
그냥 로그는 로그 ^~^ 어디서 자동으로 나오나보다~ 라는 꽃밭과 같은 생각을 하고 있었다 (노.답.)

세팅 분석을 계기로 이참에 내가 보는 이 로그가 어떻게, 어떤 원리로 나오는지 파악해보기로 하자.
1. 스프링 자동 로그 기능
LogBack 이란
SpringBoot의 기본 로깅 프레임 워크
따로 설치하지 않아도 spring boot starter 에 포함되어 있어서 바로 쓸 수 있음
기본 로그 확인하기
private static final Logger logger = LoggerFactory.getLogger(DummyController.class);
@PostMapping("/api/tests")
public CommonResponse<?> testApi(@RequestBody @Valid TestEntity testEntity) {
logger.info("INFO 레벨 로그");
logger.debug("DEBUG 레벨 로그");
logger.error("ERROR 레벨 로그");
return CommonResponse.ok(TestEntityResponse.TEST_ENTITY_CREATED, testEntity);
}
2025-05-28T08:20:41.151+09:00 INFO 9152 --- [ main] c.e.p.d.e.controller.DummyController : INFO 레벨 로그
2025-05-28T08:20:41.151+09:00 ERROR 9152 --- [ main] c.e.p.d.e.controller.DummyController : ERROR 레벨 로그
위와 같이 default 설정된 로그가 찍히는 것을 확인할 수 있다. (Test code 작성시 debug 레벨은 안보이게 설정되어 있나봄)
2. 로그 커스텀 설정에서 해보기
기본 경로 - 가장 메인 루트에 설정

예시
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
콘솔에만 로그를 출력한다
결과
2025-05-28 08:32:43 [main] INFO c.e.p.d.e.controller.DummyController - INFO 레벨 로그
2025-05-28 08:32:43 [main] ERROR c.e.p.d.e.controller.DummyController - ERROR 레벨 로그
커스텀에서 바꾼대로, 날짜, 스레드 정보 등이 더 간결하게 표현된 것을 알 수 있다.
3. 다양한 환경 설정
- (환경별로) 로그 레벨을 바꿔보기
<springProfile name="default,local,dev">
<root level="INFO">
<appender-ref ref="CONSOLE"/>
</root>
</springProfile>
- 특정 패키지/클래스만 레벨을 다르게 줘보기
<springProfile name="test">
<root level="ERROR">
<appender-ref ref="CONSOLE"/>
</root>
<!-- 프로젝트 패키지의 로그 설정은 application.yml에서 설정됨 -->
<logger name="com.example.green" level="DEBUG" additivity="false">
<appender-ref ref="CONSOLE"/>
</logger>
</springProfile>
- 로그를 파일로 남겨보기
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<!-- 로그 파일 경로 설정 -->
<file>logs/practice.log</file>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>

테스트 실행할 때마다, 로그 파일 갱신됨
'SERVER > Architecture' 카테고리의 다른 글
| [전전긍긍 설정세팅] 7. DDD와 클린 아키텍처 (#디렉토리 #공통규약) (0) | 2025.05.29 |
|---|---|
| [Architecture] 클린 아키텍처와 OOP (0) | 2025.05.28 |
| [전전긍긍 설정세팅] 5. Profile별 설정 과 보안 파일 관리 (#공통규약) (0) | 2025.05.22 |
| [전전긍긍 설정세팅] 4. 어노테이션과 BaseEntity/QueryDSL (#공통규약 #공통기술) (5) | 2025.05.22 |
| [전전긍긍 설정세팅] 3. 2단계 파일 업로드 (#공통기술) (0) | 2025.05.21 |