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
- sqld
- MongoDB
- 자바의 정석
- 정보처리기사
- github
- Spring Boot
- 캐시
- 분할정복
- 스프링 부트
- 스프링 시큐리티
- 실행 컨텍스트
- 스프링부트
- 게시판
- 동적계획법
- 가상 면접 사례로 배우는 대규모 시스템 설계 기초
- JPA
- VMware
- 이벤트루프
- SQL
- spring security
- 영속성 컨텍스트
- 레디스
- document database
- NoSQL
- Redis
- 호이스팅
- 정처기
- in-memory
- 다이나믹프로그래밍
- 깃허브
Archives
- Today
- Total
FreeHand
로깅 본문
로그 라이브러리는 Logback, Log4J, Log4J2 등이 있는데, SLF4J는 이것들을 통합해서 인터페이스로 제공한다.
SLF4J 인터페이스의 구현체로 Logback 같은 라이브러리를 사용한다.
@RestController
public class LogTestController {
// 로그 선언
private final Logger log = LoggerFactory.getLogger(getClass());
// private static final Logger log = LoggerFactory.getLogger(Xxx.class)
@RequestMapping("/log-test")
public String logTest() {
String name = "Spring";
// 로그 출력
log.trace("trace log={}", name);
log.debug("debug log={}", name);
log.info("info log={}", name);
log.warn("warn log={}", name);
log.error("error log={}", name);
return "ok";
}
}
// application.propertise에서 로그 레벨 설정
logging.level.hello.springMVC=trace
로그를 선언하고 호출하는 코드이다.
로그 선언은 private static final Logger log = LoggerFactory.getLogger(Xxx.class) 코드를 통해서도 가능하다.
또한 클래스에 @Slf4j 애노테이션을 사용해서도 가능하다.
@Slf4j // 로그 선언
@RestController
public class LogTestController {
@RequestMapping("/log-test")
public String logTest() {
String name = "Spring";
log.info("info log={}", name);
return "ok";
}
}
기본 설정은 info부터 출력되지만 application.propertise에서 위 코드를 추가해서 출력되는 레벨을 설정할 수 있다.
로그 레벨: TRACE -> DEBUG -> INFO -> WARN -> ERROR
보통 개발 서버에서는 DEBUG, 운영 서버에서는 INFO 단계로 한다.
trace로 설정했기 때문에 5개의 로그가 모두 출력되었다.
log.info("info log=" + name); // 1
log.info("info log={}", name); // 2
로그 출력은 1번 방식처럼 단순 문자열 연산으로 출력할 수도 있다.
하지만 이렇게 하면 로그를 사용하지 않더라도 연산이 먼저 실행되어서 리소스가 낭비된다.
따라서 로그 출력은 2번 방식으로 한다.
로그 사용 장점
- 쓰레드 정보, 클래스 이름 등 부가 정보를 함께 볼 수 있다.
- 출력 형태를 조정할 수 있다.
- 로그 레벨을 상황에 맞게 조절할 수 있다.
- 콘솔뿐만 아니라 파일이나 네트워크 등에도 로그를 남길 수 있다.
- System.out보다 성능이 좋다.
이런 장점들 때문에 System.out대신 로그를 사용한다.
'Web > Spring' 카테고리의 다른 글
HTTP 헤더 조회 (0) | 2023.10.29 |
---|---|
스프링 요청 매핑 (1) | 2023.10.29 |
[Spring Boot] 게시판 프로젝트 - 05. 댓글 기능 (0) | 2023.10.04 |
[Spring Boot] 게시판 프로젝트 - 04. 회원정보 수정 (0) | 2023.10.01 |
[Spring Boot] 게시판 프로젝트 - 03. 게시판 글 CRUD (0) | 2023.09.30 |