톰캣의 catalina.out 로그가 일자가 바뀌어도 일자별로 파일이 생성되지 않고 catalina.out에 

계속 append 되는 경우가 종종 있다. 주로 리눅스 시스템에서 발생하는 듯 하다.

 

${catalina.base}/bin/catalina.sh

 

374 라인 쯔음에 보면 이런 내용이 있다.

 

3가지 작업을 해주면 된다.

 

1. catalina.out 파일 생성 주석 처리

2. 톰캣 start 시 백그라운드로 실행

3. rotatelogs 를 이용한 일자별 로그 관리


# touch "$CATALINA_OUT" // catalina.out 파일을 만드는 부분 주석 처리
  if [ "$1" = "-security" ] ; then
    if [ $have_tty -eq 1 ]; then
      echo "Using Security Manager"
    fi
    shift
    eval $_NOHUP "\"$_RUNJAVA\"" "\"$CATALINA_LOGGING_CONFIG\"" $LOGGING_MANAGER "$JAVA_OPTS" "$CATALINA_OPTS" \
      -D$ENDORSED_PROP="\"$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\ // 백그라운드 실행 
      | /usr/sbin/rotatelogs "$CATALINA_BASE"/logs/catalina.%Y-%m-%d.log 86400 540 & // 일자별 로그 관리
      # >> "$CATALINA_OUT" 2>&1 "&" // 주석 처리

  
  else
    eval $_NOHUP "\"$_RUNJAVA\"" "\"$CATALINA_LOGGING_CONFIG\"" $LOGGING_MANAGER "$JAVA_OPTS" "$CATALINA_OPTS" \
      -D$ENDORSED_PROP="\"$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\ // 백그라운드 실행 
     | /usr/sbin/rotatelogs "$CATALINA_BASE"/logs/catalina.%Y-%m-%d.log 86400 540 & // 일자별 로그 관리
      # >> "$CATALINA_OUT" 2>&1 "&" // 주석 처리

강한 결합

객체 간의 의존 관계에서 직접 객체를 생성 하는 경우

- 생성부터 메모리 관리를 위한 소멸까지 해당 객체의 라이프 사이클을 개발자가 다 관리해야함

 

ex) 

public void test1(){

    Test t1 = new Test(); // 강한 결합 - 직접 생성

}

약한 결합

객체 간의 의존 관계에서 이미 생성한 객체를 주입 받는 경우

- 사용하기만 하면 되므로 개발자가 관리할 것이 적음

 

ex)

public void test2(Test t){ // 약한 결합 - 생선된 것을 주입 받음(의존성 주입)

    Test t2 = t;

}

 

 

의존성 주입(DI)을 통해 약한 결합을 사용하면 다른 클래스의 변화에 더욱 안전하고 유연하게 대처할 수 있음

톰캣을 실행하면 콘솔에서 다음과 같이 한글이 깨지는 경우가 있다.

 

이는 인코딩의 문제로 Windows Console의 한국어 인코딩의 경우 EUC-KR 이지만 톰캣의 인코딩의 경우 기본 UTF-8로 설정되어 있기 때문이다.

 

톰캣 설치경로의 conf/logging.properties 파일을 보면 아래와 같은 설정부분이 있을 것이다.

 

 

UTF-8 인코딩을 EUC-KR로 수정해주면 된다.

java.util.logging.ConsoleHandler.encoding = EUC-KR 

1. Gitlab 시작

gitlab-ctl start

 

2. Gitlab 종료

gitlab-ctl stop

 

3. Gitlab 재시작

gitlab-ctl restart

 

4. Gitlab 설정 적용

gitlab-ctl reconfigure

 

5. 서비스 상태 확인

gitlab-ctl status

 

6. gitlab 로그 확인

공통 로그

tail -f  /var/log/gitlab/gitlab-rails/production.log

 

서비스 로그

gitlab-ctl tail 서비스명

ex) gitlab-ctl tail nginx

 

 

 

+ Recent posts