/** logback.xml **/
<appender name = "어펜더 이름" class = "ch.qos.logback.core.ConsoleAppender"> 어펜더 정의 : 어떻게 로그를 찍을 것인가?
<filter class = "ch.qos.logback.core.filter.EvaluatorFilter"> 필터유형 정의
<evaluator>
<expression>
return( ..... ); 필터링 내용 정의
</expression>
</evaluator>
<OnMismatch>NEUTRAL</Onmismatch> 필터 리턴값이 false이 경우
<OnMatch>DENY</OnMatch> 필터 리턴값이 true인 경우
</filter>
<layout class = "ch.qos.logback.classic.PatternLayout"> 로그 레이아웃 정의
<pattern>%d{HH:mm:ss.SSS} %-4relative [%thread] %-5level %logger{36} - %msg%n</pattern> 로그 레이아웃 패턴 정의
</layout>
</appender>
FilterReply | Description |
DENY | 로그 이벤트 동작을 취소하며, 남아있는 Filter들에대하여 검증 하지 않는다. |
NEUTRAL | 남아있는 다음 Filter에게 검증을 넘긴다. 만약 남아있는 Filter가 없다면 로그 이벤트 정상적으로 동작된다. |
ACCEPT | 로그 이벤트를 정상적으로 동작시키며, 남아있는 Filter들에 대하여 검증하지 않는다. |
<logger name = "로거명" additivity="false"> 로거 정의, additivity : 로거가 상속되는 경우를 방지 ex. root(최상위) 로거 방지
<level value = "DEBUG"/> 레벨 : 디버그 모드 이하일 경우
<appender-ref ref="어펜더 이름"/> 어펜더 정의 : 위에서 정의한 어펜더로 로그를 어떻게 찍을지.
<appender-ref ref="어펜더 이름"/>
</logger>
logger level | Description |
TRACE | 디버그 레벨이 너무 광범위한 것을 해결하기 위해서 좀 더 상세한 이벤트 |
DEBUG | 개발시 디버그 용도 |
INFO | 어떠한 상태 변경과 같은 정보성 메시지 |
WARN | 프로그램의 실행에는 문제가 없지만, 향후 시스템 에러의 원인이 될 수 있는 경고성 메시지 |
ERROR | 어떠한 요청을 처리하는 중 문제가 발생한 상태 |
FATAL | 심각한 에러 발생 상태 |
위험도 순서 : (안전) TRACE < DEBUG < INFO < WARN < ERROR < FATAL (위험)
/** memberService.java **/
Logger logger = LoggerFactory.getLogger("로거명"); 로거팩토리를 통해 logback.xml에서 정의한 logger 객체를 생성해서 사용
logger.trace("트레이스 레벨 로그 출력");
logger.debug("디버그 레벨 로그 출력");
logger.error("에러 레벨 로그 출력");
'IT 개발' 카테고리의 다른 글
[Java] 날짜, 시간 함수 알아보기 - Date, Calendar (0) | 2023.01.11 |
---|---|
[Spring] 트랜잭션 AOP 기능 정리 (0) | 2023.01.07 |
[Web] API 란? (0) | 2021.12.26 |
[WEB] 웹(Web) 이란? (0) | 2021.12.21 |
[Java] 객체(Object) 란? (0) | 2021.12.18 |