** 로그(log)관리
: 웹어플리케이션에 특정 이벤트(Listener)나 특정 요청(Filter)이나 시간에 따라 남기는 기록
** 필요성
1) 위험에 대한 대비
2) 유지보수
3) 오류관리(디버깅)
4) 사용자의 패턴 분석, 새로운 사업모델의 자료로 활용
** 로그 관리 방법
1) System.out.println() 가장 원시적인 로그의 형태 - 개발단계에서는 가능한 형태이지만 실제 서비스 운영시에는 모두 제거함
2) 사용자 직접 로그관리를 위한 클래스를 만드는 방법
3) 범용적인 로그관리를 위한 프레임워크를 이용한다.
Log4j + SLF4j
이 두가지가 합쳐서 널리 쓰인다.
SLF4j 설치방법(필수)
2. SLF4J Project - Download 클릭
3. slf4j-1.7.21.zip 다운로드
4. 압축풀기
5. C:\Users\JAE HYUK\Desktop\slf4j-1.7.21\slf4j-1.7.21
여기 경로에서
6. 3개중 두개만 해야됨 필수 하나 / 선택 하나
slf4j-api-1.7.21 //필수jar
slf4j-log4j12-1.7.21 // 둘중 하나(log4j 같이 사용할땐 이거)
slf4j-simple-1.7.21 // 둘중 하나(혼자 사용할땐 이거)
7. 세개 선택해서 바탕화면에 log 폴더 만들고 넣어놓기
Log4j 설치방법
1. logging.apache.org/log4j/1.2/download.html
2. Apache log4j 1.2.17(zip) - Mirrors 클릭
3. HTTP 아무거나 다운로드 (어차피 미러라서?)
4. 압축풀기
5. C:\Users\JAE HYUK\Downloads\log4j-1.2.17\apache-log4j-1.2.17
여기 경로에서
6. 한개 있는거 가져오기
log4j-1.2.17
7. 1개 선택해서 바탕화면 log 폴더에 넣기
** 로그 실습
실습1)
SLF4j만 이용한 실습
1. 프로젝트 만들고 - WEB-INF/lib 에 api와 simple.jar 복사
2. Log를 출력할 클래스 정의
LogTest 클래스명
Log를 출력하기 위하여 Logger 클래스를 이용한다
Logger logger = LoggerFactory.getLogger(클래스명.Class);
logger.debug(); ==> 콘솔 출력안됨
logger.info(); ==> 콘솔 출력됨
logger.warm(); ==> 콘솔 출력됨
==> 다양한 형태로 Log를 남기기 위해서는 Log4j와 같이 사용한다.
실습2)
SLF4j와 Log4j 연동하여 실습
1. 프로젝트 만들고 - WEB-INF/lib 에 api와 log4j.jar ,
그리고 log4j-1.2.17.jar 총 3가지 복사
2. log4j 설정파일 생성 - 파일복사
경로 :
C:\Users\JAE HYUK\Downloads\log4j-1.2.17\apache-log4j-1.2.17\examples\lf5\InitUsingXMLPropertiesFile
안에 있는
example 파일 복사 한 후에 WEB-INF 밑에 복사하기
3. log4j 설정파일 생성한다.
emaple.xml 파일을 log4j.xml 파일로 이름 바꾸고 안에 있는 주석제거
4.
<root></root> 전체어플리케이션의 로그를 설정
<appender></appender> 종류별로 로그처리를 위한 그룹을 나누기 위한 사상
appender의 종류
ConsoleAppender
FileAppender
RollingFileAppender
DailyRollingFileAppender
.......
appender의 하위노드
layout의 종류
PatternLayout
에서 pattern의 종류
%p : 로깅레벨
%m : 로그내용
%d : 로그시간(yyyy-MM-dd HH:mm:ss)
%n : 개행(줄바꿈)
%C : 클래스이름
%F : 파일명
%L : 라인
%M : 메소드이름
HtmlLayout
변경전
<appender name="LF5Appender" class="org.apache.log4j.lf5.LF5Appender">
<param name="MaxNumberOfRecords" value="1000"/>
</appender>
<root>
<priority value ="debug" />
<appender-ref ref="LF5Appender"/>
</root>
변경후
<appender name="stdout" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.ConsoleAppender">
<param name = "ConversionPattern" value="[%d] [%p] %m" />
</layout>
</appender>
<appender name="dailyout" class="org.apache.log4j.DailyRollingFileAppender">
<param name="file" value="c:/temp/dailyout.log" />
<param name="append" value="true" />
<param name="DatePattern" value=".'yyMMdd'" />
<layout class="org.apache.log4j.ConsoleAppender">
<param name = "ConversionPattern" value="[%d] [%p] %m" />
</layout>
</appender>
<root>
<level value="INFO" />
<append-ref="stdout" />
<append-ref="dailyout" />
</root>
5. 앞서 했던 com.hanb.log 패키지 복사하여 src 에 붙여넣고 실행해보기
******************************
로그 실습할 때 에러났던 상황
1. log4j.xml 을 WebContent 밑이 아닌 src 밑에 두어야 한다.
2. 또한 appender-ref= 가 아닌 appender-ref ref= 여야 한다.
'JAVA > JSP' 카테고리의 다른 글
JSP - 사용자 정의 태그 (커스텀 태그) 정의 및 만드는 방법 (0) | 2016.07.03 |
---|---|
JSP - filter와 Listener를 결합한 실습 (0) | 2016.07.03 |
JSP - Listener 정의 및 만들기 (0) | 2016.07.03 |
JSP - filter 정의 및 두가지 방법 (어노테이션과 web.xml 맵핑) (0) | 2016.07.03 |
JSP - 검색기능 추가 (1) | 2016.07.03 |