동적 SQL
- if
- choose : if-else의 역할
∙ when
∙ otherwise - trim : profix, suffix, xxxOverrides
- foreach : 반복문
☑ like
▪ select * from board where 컬럼명 like '%키워드%';
▪ subject. a,b,c 병원
▪ content
select * from board where ${sel} like '%#{search}';
select * from board where subject like '%병원%'
☑ 컬럼명 ${}
#{} setString ' '
setInt. 10
log4j : log for java
• 프로그램을 작성하는 도중에 로그를 남기기 위해 사용되는 자바 기반 로깅 유틸리티
• 디버그용 도구로 주로 사용되고 있다
• 로그문의 출력을 다양한 대상을 할 수 있도록 도와주는 도구 (오픈소스)
• 6단계의 장애레벨을 사용 TRACE, DEBUG, INFO, WARN, ERROR, FATAL
1) 라이브러리 추가
∙ log4j
∙ slf4j-api
∙ slf4j-log4j12
log4j db용
2) log4j 설정파일
∙ /WEB-INF/log/log4j.xml
3) 구조
∙ Logger(Category) : 로깅메세지를 Appender에 전달
∙ 로그 출력여부는 로그문의 레벨과 로거의 레벨을 가지고 결정 6가지 로그 레벨을 가지고 있다.
☑ Appender : 로그의 출력위치를 결정 (파일, 콘솔, DB등)
☑ Layout : 어떤 형식으로 출력할 것인지 layout 결정하는것
▸DateLayout, HTMLLayout, PatternLayout...
4) 레벨 ( 심각한것부터 나열 )
∙ FATAL : 아주 심각한 에러
∙ ERROR : 요청 처리하는 중 문제 발생
∙ WARN : 처리가 가능한 문제지만, 향후 시스템 에러의 원인이 될수도 있는 경고성 메세지
∙ INFO : 로그인, 상태변경과 같은 정보성 메세지
∙ DEBUG : 개발시 디버그 용도로 사용한 메세지
∙ TRACE : 새로추가된 레벨로 DEBUG 좀 더 상세한 상태를 나타내줌
5) Pattern Option
∙ %p : debug,info,warn,error,fatal 로그레벨
∙ %m : 로그 내용 출력
∙ %d : 로깅 이벤트 발생 시간 출력 %d{yyyy-MM-dd HH:mm:ss}
∙ %t : 로그 이벤트 발생된 스레드 이름 출력
∙ %c : 카테고리 출력 : a.b.c %c{2}
∙ %C : 클래스명출력 : a.b.c.DClass %C{2} c.DClass
∙ %L : 로깅 발생한 caller의 라인수 출력
∙ %n : 개행문자
∙ %M : 로깅이 발생한 메서드 이름
∙ %F : 로깅 발생한 프로그램 파일명
6) 주요 클래스
∙ ConsoleAppender
∙ FileAppender
∙ RollingAppender
∙ DailyRollingAppender
∙ JDBCAppender
∙ SMTPAppender
∙ NTEventAppender
7) 로그 설정이 적용되기 위해 설정
∙ web.xml > <context-param>, <listener> 추가
∙ spring-servlet.xml > <bean id="dataSource"> 수정
∙ log4j.xml > <logger name="sqltiming"> 추가
'basic > spring' 카테고리의 다른 글
| [spring 08] jQuery (0) | 2021.08.09 |
|---|---|
| [spring 07] 회원가입 (0) | 2021.08.08 |
| [spring 05] mybatis 세팅, sql 적용 (0) | 2021.08.08 |
| [spring 04] ViewResolver, 파일 업로드&다운로드 (0) | 2021.08.03 |
| spring framework 03 [실습] 파라미터 수집, view로 데이터 보내기, 의존성주입 (0) | 2021.08.02 |