자바에서 로그를 찍을 때, 그동안 System.out.println을 애용했었다.
하지만 이것의 문제는 출력한 뒤에 시간이 지나서 스크롤이 되어버리면
더이상 볼 수 없다는 것.
그래서 그걸 기록으로 남기는 로그가 필요한 것인데.
php에서는 쉽게 구현이 가능했으나, 자바에서는 어떻게 구현할 것인가 생각했다.
log4j라는 로그 라이브러리가 있다. 지금 최신버전은 2버전인데.
인터넷에는 1버전 자료가 많이 공개되어 있어 1버전 자료를 토대로 log4j를 활용했다.
log4j의 설정은 properties 파일을 활용하는데, src폴더 바로 밑에 넣어주거나,
그냥 같은 폴더 내에 있기만 하면 자동으로 log4j.properties 파일을 찾아내어 해당 설정을
읽고 설정에 맞게 로그를 뿌려준다.
설정파일의 내용은 대략 이렇다.
log4j.rootLogger = debug, stdout, dailyfile
# Console log
#log4j.appender.stdout.Threshold = INFO
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p ({%t} %F[%M]:%L) [%d] - %m%n
# Daily file log
#log4j.appender.dailyfile.Threshold = INFO
log4j.appender.dailyfile = org.apache.log4j.DailyRollingFileAppender
log4j.appender.dailyfile.DatePattern ='.'yyyy-MM-dd-HH-mm
log4j.appender.dailyfile.layout = org.apache.log4j.PatternLayout
log4j.appender.dailyfile.File = ${catalina.home}\\logs\\logfile.log
log4j.appender.dailyfile.layout.ConversionPattern=%5p ({%t} %F[%M]:%L) [%d] - %m%n
로그에는 기본적인 레벨이 있다.
FATAL 심각
ERROR 에러
WRANING 경고수준
INFO 정보
DEBUG 디버깅
기본적으로 INFO레벨 부터 로그로 남겨야 된다고 본다.
DEBUG 레벨의 로그는 프로그램을 수정하거나
이상한 점을 자세히 확인하기 위해 특별한 경우에만 사용해야 한다고 본다.
첫번째 라인은 루트로거다. 여기에서 설정한 값은 콘솔로거와 데일리로거에 영향을 준다.
물론 콘솔로그와 데일리로그에 별도의 설정값을 주면 해당 로거만 설정은 바뀌게 된다.
주황색에 debug라고 잡아두면, debug메시지까지 로그에 남기게 된다.
보통은 info로 사용하길 추천한다.
그리고 로그파일명에도 이슈가 있다.
처음에 생성시에는 로그 파일명에 날짜옵션이 적용되지 않는다.
로그 데이터패턴을
log4j.appender.rolling.DatePattern='.'yyyy-MM-dd
이렇게 주었다면, 이는 하루 뒤에 날짜옵션이 적용된다는 걸 의미한다.
(분단위, 시간단위로 변경이 가능하다. 그러니 테스트시엔 분단위로 체크해보면 될 것이다.)
인터넷에 나와있는대로 하면 logfile.log.2015-08-28
이렇게 날짜가 확장자명이 되어버린다.
이 부분은 다음과 같이 변경해서 쓰면 된다.
log4j.appender.rolling.DatePattern='.'yyyy-MM-dd'.log'
이렇게 만들면 파일명이
logfile.log.2015-08-28.log
이렇게 만들어지게 된다.
앞에 붙는 접두어 logfile.log는
log4j.appender.dailyfile.File = ${catalina.home}\\logs\\logfile.log
log4j.appender.dailyfile.File 옵션에는 절대경로외에 상대경로도 역시 사용이
가능하다.
.으로 시작하면 현재경로를 의미한다. ..은 상위의 경로로 이동하는 것을 의미하고.
각자 환경에 맞게 log파일의 경로를 정해주면 된다.
참고링크
www.jakartaproject.com/board-read.do?boardId=jakarta&boardNo=111043840598200&command=READ&t=1440727607751
everlikemorning.tistory.com/entry/Log4J-간단-사용법
'호구지책 > Java/Android ' 카테고리의 다른 글
[안드로이드] 옵션 메뉴 처리하기 (0) | 2015.12.01 |
---|---|
[안드로이드] 메모리 릭 (0) | 2015.10.21 |
[안드로이드] 사진 중복 저장 이슈 (0) | 2015.09.01 |
[안드로이드] 앱 완전 종료 (0) | 2015.09.01 |
[안드로이드]이미지 저장 경로 이슈 (0) | 2015.08.25 |
[안드로이드]갤러리 새로고침(Refresh) (0) | 2015.08.25 |
GCM - Google Play Service (0) | 2015.03.31 |
이클립스 최적화 (0) | 2015.02.09 |
댓글