'기타' 카테고리의 다른 글
브롤스타즈 레드 와이파이 끊김(1초간격으로 끊길 때) 해결방법 (0) | 2020.03.16 |
---|---|
tistory 글 작성시 소스 코드 넣는 방법 (0) | 2019.10.02 |
/lib64/libc.so.6: version `GLIBC_2.14' not found (0) | 2018.02.08 |
브롤스타즈 레드 와이파이 끊김(1초간격으로 끊길 때) 해결방법 (0) | 2020.03.16 |
---|---|
tistory 글 작성시 소스 코드 넣는 방법 (0) | 2019.10.02 |
/lib64/libc.so.6: version `GLIBC_2.14' not found (0) | 2018.02.08 |
Tomcat의 로그파일중 catalina.out은 하나의 파일에 계속 로그가 누적됨으로
파일의 크기가 무지막지하게 커지는 현상을 볼수있다.
차후 파일의 크기가 일정크기를 벗어났을때 에러도 발생하기때문에 정기적으로 Tomcat을 내리고 삭제해주는 작업을 해야되는
불편함이 있어서 파일을 다른 로그처럼 날짜별로 생성하고 싶었다.
그래서 검색을 했더니 log4j나 몇가지 다른 방법으로 설정하는 방법이 존재하는거 같았다.
하지만 Apache의 rotatelogs를 이용하는게 제일 쉽고 간단해 보였다.
방법은 /Tomcat설치폴더/bin/catalina.sh 파일의 내용중
shift
touch "$CATALINA_OUT"
if [ "$1" = "-security" ] ; then
if [ $have_tty -eq 1 ]; then
echo "Using Security Manager"
fi
shift
eval "\"$_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 "&"
else
eval "\"$_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 "&"
fi
이부분에서 몇가지 부분을 아래와 같이 변경한다.
shift
#touch "$CATALINA_OUT"
if [ "$1" = "-security" ] ; then
if [ $have_tty -eq 1 ]; then
echo "Using Security Manager"
fi
shift
eval "\"$_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 \
2>&1 "&" | /apache설치위치/bin/rotatelogs "$CATALINA_OUT"-%Y-%m-%d 86400 540 &
else
eval "\"$_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 \
2>&1 "&" | /apache설치위치/bin/rotatelogs "$CATALINA_OUT"-%Y-%m-%d 86400 540 &fi
위의 빨간색 글자부분이 변경된 부분이다.
우선 touch "$CATALINA_OUT" 부분을 주석처리한다.
주석처리하지 않으면 아래와같이 파일크기가 0인 catalina.out 이라는 파일이 계속 생성되어 있는것을 볼수 있다.
그다음으로 Apache가 설치된 경로를 확인한다.
이는 날짜별 파일 생성을 위해 rotatelogs를 사용하는데 Apache의 설치경로 아래에 bin폴더에 존재하기 때문이다.
그리고 나서
>> "$CATALINA_OUT" 2>&1 "&"
부분이 두군데 있는데 두군데 모두를
2>&1 "&" | /apache설치위치/bin/rotatelogs "$CATALINA_OUT"-%Y-%m-%d 86400 540 &
로 변경해준다.
당연히 "apache설치위치"는 실제 위치를 기재해야된다.
그리고 뒷쪽의 옵션이 %Y-%m-%d 86400 540 이렇게 붙는데
%Y-%m-%d는 날짜 표현(상세 표현 방법은 아래 표 참조)
%A | (지역화된) 완전한 요일 이름 |
%a | (지역화된) 3-문자 요일 이름 |
%B | (지역화된) 완전한 달 이름 |
%b | (지역화된) 3-문자 달 이름 |
%c | (지역화된) 날짜와 시간 |
%d | 2-자리 일 |
%H | 2-자리 시간 (24 시간 시계) |
%I | 2-자리 시간 (12 시간 시계) |
%j | 3-자리 날짜수 |
%M | 2-자리 분 |
%m | 2-자리 달 |
%p | (지역화된) 12 시간 시계의 am/pm |
%S | 2-자리 초 |
%U | 2-자리 주일수 (주의 첫번재 날은 일요일) |
%W | 2-자리 주일수 (주의 첫번재 날은 월요일) |
%w | 1-자리 요일수 (주의 첫번째 날은 일요일) |
%X | (지역화된) 시간 |
%x | (지역화된) 날짜 |
%Y | 4-자리 연도 |
%y | 2-자리 연도 |
%Z | 시간대 이름 |
%% | 문자그대로 `%' |
86400는 로테이션 시간을 초단위로 표현 (86400은 24시간 즉 매일)
540은 표준시와 한국시간과의 시간차를 표현
이제 catalina.out 로그는 날짜별로 생성되어 진다.
아래 참고사이트에 가면 더 다양한 설정 방법 및 옵션을 확인 가능하다.
참고 사이트 : http://adminid.kr/unixlinux/102231
http://httpd.apache.org/docs/current/programs/rotatelogs.html
출처: http://savour.tistory.com/316 [사랑향기-아이들의 키만큼 커져가는 행복(서진연)]
[JSP] 개발,상용 deploy_domain 한번에 설정하는 방법 (0) | 2018.07.10 |
---|---|
Web XSS-Servlet-Filter 적용하기 (0) | 2018.07.10 |
CORS 크로스 도메인 이슈 (No 'Access-Control-Allow-Origin' header is present on the requested resource) (0) | 2018.02.09 |
알아두면 쓸만한 Chrome Console 기능 (0) | 2018.01.04 |
[JSP] HTTP 에러코드 정리 (0) | 2017.12.08 |
나는 개발할 때 Chrome 개발자도구의 console을 굉장히 자주 사용하는데(대부분의 개발자들이 그럴 것이라 생각한다), 오늘은 크롬 개발자도구의 편리한 기능과 잘 쓰진 않지만 알아두면 좋은 기능들을 한 번 정리해 보고자 한다.
console 오른쪽 상단위 톱니바퀴를 누르면 옵션을 볼 수 있다. 주로 사용하는 기능은 다음과 같다.
console.group(), console.groupEnd() 명령어를 사용하면 메세지들을 그룹화 하여 보여줄 수 있다. 또한 이 그룹들은 중첩도 가능하다. 또 그룹이 축소된 상태로 보이게 하고 싶다면 console.group()대신 console.Collapsed()를 사용할 수도 있다.
console.assert()를 사용하면 첫번째 매개변수가 false일때만 두번째 매개변수를 출력한다.
그러나 개발하다보면 해당 element의 속성을 보고싶은 경우가 있는데 이때 console.dir()를 사용하면 해당 element를 javascript객체로 표현해준다.
object나 배열을 console.table()을 사용하면 표로 볼 수 있다.
console에서 DOM Element를 선택할때 단축 선택자를 사용할 수 있다. 단축 선택자는 세 종류가 있다.
copy(object)를 사용하면 지정된 객체의 문자열 표현을 클립보드에 복사할 수 있다.
monitor(function) 함수를 실행하면 지정된 함수가 실행 되었을 때 함수 이름과 인수를 출력해준다.
chrome은 대부분의 ES6 문법을 지원하기 때문에 template literals를 그대로 사용할 수 있는데, console.log와 조합하면 꽤나 편리하게 사용이 가능하다. 특히 문자열과 변수를 함께 사용해야하는 경우 편리하다. 예를 들어보자. 보통 문자열 중간에 변수 값을 표현하려면 다음과 같이 많이 사용한다.
template literals은 ``(backtick)과 ${object}를 사용하여 표현할 수 있다. 따라서 다음과 같이 console.log()에 다음과 같이 표현할 수 있다.
출처: http://dev-momo.tistory.com/entry/알마두면-쓸만한-Chrome-Console-기능 [Programming Note]
[JSP] 개발,상용 deploy_domain 한번에 설정하는 방법 (0) | 2018.07.10 |
---|---|
Web XSS-Servlet-Filter 적용하기 (0) | 2018.07.10 |
CORS 크로스 도메인 이슈 (No 'Access-Control-Allow-Origin' header is present on the requested resource) (0) | 2018.02.09 |
Tomcat의 catalina.out 로그 날짜별 생성하기 (0) | 2018.01.10 |
[JSP] HTTP 에러코드 정리 (0) | 2017.12.08 |