Middleware [TOMCAT] log 관리
페이지 정보
작성자 partner 아이디로 검색 전체게시물 댓글 0건 조회 14,800회 좋아요 1회 작성일 18-11-19 10:32본문
tomcat의 로그종류
1. catalina.out : 서버의기동,정지, 서비스의개시, 정지정보, standard output, standard error
2. catalina.YYYY-MM-DD.log : 서버의기동,정지, 서비스의개시, 정지정보(tomcat 자체에관한)
3. host-manager.log : Tomcat Host Manager Web app 로그 (가상호스트매니저)
4. manager.log : Tomcat Manager Web App 로그 (웹콘솔)
5. localhost.log : host( VirtualHost 같은) 한정한 로그
6. stderr.log : 표준에러출력
7. stdout.log : 표준출력
8. admin.log : tomcat web server adminstartionTool 로그
*catalina.out과 catalina.log 의 차이점: 서로 유사한것처럼 보이나 tomcat에서 생성하는 로그 이외에 standard output, standard error 의 로깅은 제외된다.
즉, 소스에서 System.out.println 이나 System.err.println 으로 남기는 로그가 있다면
그 내용은 오직 catalina.out 에서만 찾아볼 수 있다.
(standard output : 웹페이지에 코딩해논 system.out.println() 디버그 메시지 출력)
1. Logrotate 데몬으로 rotate 하기
$ cd /etc/logrotate.d
$ cat > tomcat
/var/local/tomcat/logs/catalina.out { =>톰캣의 로그가 기록될 경로로 지정
Copytruncate #백업본을 생성하면 원본의 내용을 지우는 형태
Daily # '일'단위 파일생성 로그파일을 1일에 한번 백업
rotate 30 # 보관주기는 30일 단위(이후삭제?) 최대로그파일개수를30개제한
Missingok # 로그파일이 생성되지 않는 경우 오류처리 하지 않음
notifempty # 로그로 기록할 내용이 없을때 신규로그파일 생성안함
Dateext # YYYYMMDD 형식으로 생성
#Compress # 'rotate' 내 로그파일은 압축보관(gzip)
}
1.1 test 해보기
[root@yui logrotate.d]# /usr/sbin/logrotate -d /etc/logrotate.d/tomcat6
reading config file /etc/logrotate.d/tomcat6
reading config info for /home/monwas/apache-tomcat-7.0.82/logs/catalina.out
Handling 1 logs
rotating pattern: /home/monwas/apache-tomcat-7.0.82/logs/catalina.out monthly (1 rotations)
empty log files are not rotated, old logs are removed
considering log /home/monwas/apache-tomcat-7.0.82/logs/catalina.out
log does not need rotating => 아직 설정값의 날짜가 되지 않아서 순환할 필요없음.
날짜 변경
[root@yui logrotate.d]# vi /var/lib/logrotate.status
"/home/monwas/apache-tomcat-7.0.82/logs/catalina.out" 2018-6-29 를 한달전인
"/home/monwas/apache-tomcat-7.0.82/logs/catalina.out" 2018-5-29 로 변경
실행
[root@yui logrotate.d]# /usr/sbin/logrotate /etc/logrotate.d/tomcat6
logs 디렉토리 확인
[WAS@yui logs]$ ls -lrt
total 12
-rw-rw-r-- 1 WAS WAS 0 Jun 29 15:55 manager.2018-06-29.log
-rw-rw-r-- 1 WAS WAS 0 Jun 29 15:55 host-manager.2018-06-29.log
-rw-rw-r-- 1 WAS WAS 0 Jun 29 15:55 localhost_access_log.2018-06-29.txt
-rw-rw-r-- 1 WAS WAS 1796 Jun 29 16:14 localhost.2018-06-29.log
-rw-rw-r-- 1 WAS WAS 8133 Jun 29 16:23 catalina.out-20180629
-rw-rw-r-- 1 WAS WAS 0 Jun 29 16:23 catalina.out
2. log level 변경
catalina.log info 변경
1catalina.org.apache.juli.FileHandler.level = INFO
1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.FileHandler.prefix = catalina.[/code]
catalina.out info 변경 (catalina.out은 날짜별로 log를 관리하지못함)
TOMCAT_HOME/conf/logging.properties 에서 아래 FINE를 INFO로 변경
java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = java.util.logging.simpoleformatter
3. 불필요한 로그 없애기
3-1. catalina.out 삭제
파일의 용량이 커진다고 무조건 지우면안되고 아래를 이용해야함.
Tomcat shutdown 후 로그 삭제하고 스크립트 변경
TOMCAT_HOME/bin/catalina.sh
검색어 : CATALINA_OUT
touch "$CATALINA_OUT"
if [ "$1" = "-security" ] ; then
if [ $have_tty -eq 1 ]; then
echo "Using Security Manager"
fi
shift
eval $_NOHUP "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
-Djava.endorsed.dirs="\"$JAVA_ENDORSED_DIRS\"" -classpath "\"$CLASSPATH\"" \
-Djava.security.manager \
-Djava.security.policy=="\"$CATALINA_BASE/conf/catalina.policy\"" \
-Dcatalina.base="\"$CATALINA_BASE\"" \
-Dcatalina.home="\"$CATALINA_HOME\"" \
-Djava.io.tmpdir="\"$CATALINA_TMPDIR\"" \
org.apache.catalina.startup.Bootstrap "$@" start \
# >> "$CATALINA_OUT" 2>&1 "&"
>> /dev/null 2>&1 &
else
eval $_NOHUP "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
-Djava.endorsed.dirs="\"$JAVA_ENDORSED_DIRS\"" -classpath "\"$CLASSPATH\"" \
-Dcatalina.base="\"$CATALINA_BASE\"" \
-Dcatalina.home="\"$CATALINA_HOME\"" \
-Djava.io.tmpdir="\"$CATALINA_TMPDIR\"" \
org.apache.catalina.startup.Bootstrap "$@" start \
# >> "$CATALINA_OUT" 2>&1 "&"
>> /dev/null 2>&1 &
fi
댓글목록
등록된 댓글이 없습니다.