본문 바로가기

JAVA/JSP

JSP - 로그(log)관리 및 사용 방법

반응형

** 로그(log)관리

 : 웹어플리케이션에 특정 이벤트(Listener)나 특정 요청(Filter)이나  시간에 따라 남기는 기록


** 필요성

1) 위험에 대한 대비

2) 유지보수

3) 오류관리(디버깅)

4) 사용자의 패턴 분석, 새로운 사업모델의 자료로 활용


** 로그 관리 방법

1) System.out.println() 가장 원시적인 로그의 형태 - 개발단계에서는 가능한 형태이지만 실제 서비스 운영시에는 모두 제거함

2) 사용자 직접 로그관리를 위한 클래스를 만드는 방법

3) 범용적인 로그관리를 위한 프레임워크를 이용한다.

Log4j + SLF4j

이 두가지가 합쳐서 널리 쓰인다.


SLF4j 설치방법(필수)

1. www.slf4j.org

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= 여야 한다.

반응형