You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@GetMapping(path="/list")
publicStringlist(@RequestParam(name="start", required=false, defaultValue="0") intstart,
ModelMapmodel, @CookieValue(value="count", defaultValue="1", required=true) Stringvalue,
HttpServletRequestrequest,
HttpServletResponseresponse,
HeaderInfoheaderInfo) {
// request 에서 header 값을 가져와서 사용할 수 있으나// argument resovler에서 HeaderInfo 객체로 만들어 줌으로써 더 편하고 명확하게 사용할 수 있다System.out.println("-----------------------------------------------------");
System.out.println(headerInfo.get("user-agent"));
System.out.println("-----------------------------------------------------");
}
3. Logging
로깅(Logging)이란?
정보를 제공하는 일련의 기록인 로그(log)를 생성하도록 시스템을 작성하는 활동
프린트 줄 넣기(printlining)는 간단한, 보통은 일시적인, 로그를 생성하기만 한다.
시스템 설계자들은 시스템의 복잡성 때문에 로그를 이해하고 사용해야 한다.
로그가 제공하는 정보의 양은, 이상적으로는 프로그램이 실행되는 중에도, 설정 가능해야 한다.
일반적으로 로그 기록의 이점
로그는 재현하기 힘든 버그에 대한 유용한 정보를 제공할 수 있다.
로그는 성능에 관한 통계와 정보를 제공할 수 있다.
설정이 가능할 때, 로그는 예기치 못한 특정 문제들을 디버그하기 위해, 그 문제들을 처리하도록 코드를 수정하여 다시 적용하지(redeploy) 않아도, 일반적인 정보를 갈무리할 수 있게 한다.
로그를 출력하는 방법
System.out.print() 이용
로깅 라이브러리 이용
로그 라이브러리 종류
java.util.logging
JDK 1.4부터 포함된 표준 로깅 API
별도 라이브러리 추가 불필요
기능이 많이 부족해 다른 로그 라이브러리를 더 많이 사용
Apache Commons logging
아파치 재단에 Commons 라이브러리 중에 로그 출력을 제공하는 라이브러리
Log4j
아파치 제단에서 제공하며 가장 많이 사용되는 로깅 라이브러리
Logback
Log4j를 개발한 Ceki Gulcu가 Log4j의 단점 개선 및 기능을 추가하여 개발한 로깅 라이브러리
System.out.println()을 자주 이용하게 되면 웹 어플리케이션의 속도는 상당히 느려집니다. 운영 중인 서버에서는 System.out.println()으로 로그를 출력하면 안 됩니다. 이번 시간에 소개된 로거 객체 등을 이용해 로그를 남겨야 속도상에 문제가 발생하지 않습니다. 이번 시간에 소개한 로그 라이브들에 대해 찾아보시고 장단점에 대해 알아보세요.
logging:
file:
name: ${user.dir}/log/test.log # 로깅 파일 위치이다.max-history: 7# 로그 파일 삭제 주기이다. 7일 이후 로그는 삭제한다.max-size: 10MB # 로그 파일 하나당 최대 파일 사이즈이다.level: # 각 package 별로 로깅 레벨을 지정할 수 있다.com.project.study : errorcom.project.study.controller : debug
1. Interceptor
Interceptor?
작성법
HandlerInterceptorAdapter
을 상속받아서 구현하면HandlerInterceptor
의 구현체를 만드는 것실습 코드
HandlerInterceptorAdapter
상속 클래스 작성2. Argument Resolver
Argument Resolver?
작성법
실습 코드
3. Logging
로깅(Logging)이란?
로그를 출력하는 방법
로그 라이브러리 종류
SLF4J 사용하기
@Slf4j
어노테이션으로 사용하기4. File upload & download
Multipart
업로드 구현
다운로드 구현
The text was updated successfully, but these errors were encountered: