log4j 초기 화

5703 단어 자바
1. Tomcat 의 초기 화 
   기본 Log4j initialization 의 전형 적 인 응용 은 웹 - server 환경 에서 이 루어 집 니 다.tomcat 3. x 와 tomcat 4. x 에서 설정 파일 Log4j. properties 를 웹 프로그램의 WEB - INF / classes 디 렉 터 리 에 두 어야 합 니 다.      Log4j 는 속성 파일 을 발견 하고 초기 화 합 니 다.이것 은 그것 을 일 하 게 하 는 가장 쉬 운 방법 이다.   tomcat 를 실행 하기 전에 시스템 속성 Log4j. configuration 을 설정 할 수도 있 습 니 다.tomcat 3. x, TOMCATOPTS 시스템 변 수 는 명령 행 을 설정 하 는 옵션 입 니 다.tomcat 4.0 에 대해 시스템 환경 변수 CATALINAOPTS 가 TOMCAT 를 대 체 했 습 니 다.OPTS。
 
유 닉 스 명령 행  export TOMCAT_OPTS="-DLog4j.configuration=foobar.txt"
Log4j 에 게 파일 foobar. txt 를 기본 설정 파일 로 알려 줍 니 다.이 파일 은 WEB - INF / classes 디 렉 터 리 에 두 어야 합 니 다.이 파일 은 Property Configurator 에서 읽 을 것 입 니 다.모든 웹 - application 은 웹 - application 과 관련 된 기본 설정 파일 을 사용 합 니 다.
  • export TOMCAT_OPTS="-DLog4j.debug -DLog4j.configuration=foobar.xml" export TOMCAT_OPTS = "- DLog4j. debug - DLog4j. configuration = foobar. xml" 은 Log4j 에 게 Log4j - internal 디 버 깅 정 보 를 출력 하고 foobar. xml 을 기본 설정 파일 로 합 니 다.이 파일 은 웹 - application 의 WEB - INF / classes 디 렉 터 리 에 두 어야 합 니 다.. xml 확장자 가 있 기 때문에 DOMConfigurator 에서 읽 을 것 입 니 다.모든 웹 - application 은 기본 설정 파일 을 사용 합 니 다.모든 파일 이 웹 - application 과 관련 되 어 있 기 때 문 입 니 다.
  • set TOMCAT_OPTS = - DLog4j. configuration = foobar. lcf - DLog4j. configurator Class = com. foo. BarConfigurator 는 Log4j 에 게 파일 foobar. lcf 를 기본 설정 파일 로 사용 하 라 고 알려 주 었 다.이 파일 은 웹 - application 의 WEB - INF / classes 디 렉 터 리 에 두 어야 합 니 다.Log4j. configurator Class 시스템 속성 을 정의 하기 때문에 파일 은 사용자 정의 com. foo. barconfigurator 클래스 로 분 석 됩 니 다.모든 웹 - application 은 기본 설정 파일 을 사용 합 니 다.모든 파일 이 웹 - application 과 관련 되 어 있 기 때 문 입 니 다.
  • set TOMCAT_OPTS=-DLog4j.configuration=file:/c:/foobar.lcf set TOMCAT_OPTS = - DLog4j. configuration = file: / c: / foobar. lcf 는 Log4j 에 게 파일 foobar. lcf 를 기본 설정 파일 로 알려 줍 니 다.이 프로필 은 URL file: / c: / foobar. lcf 로 전체 경로 이름 을 정의 합 니 다.이러한 같은 프로필 은 모든 웹 - application 에 사 용 됩 니 다.

  •     서로 다른 웹 - application 은 클래스 로 더 를 통 해 Log4j 를 불 러 옵 니 다.이렇게 하면 모든 Log4j 의 환경 은 서로 동기 화 되 지 않 고 독립 적 으로 작 동 될 것 이다.예 를 들 어 여러 웹 - application 에서 똑 같은 출력 원 을 정의 한 FileAppenders 는 같은 파일 을 쓰 려 고 시도 합 니 다.결 과 는 안전성 이 부족 한 것 같다.웹 - application 의 Log4j 설정 이 같은 시스템 자원 을 사용 하지 않 았 는 지 확인 해 야 합 니 다.
    2.  Servlet 초기 화
    Log4j 를 특별한 servlet 로 초기 화 하 는 것 도 가능 합 니 다.다음 과 같은 예 입 니 다.
    자바 코드
  • public class Log4jInit extends HttpServlet {  
  •      public void init() {  
  •           String prefix = getServletContext().getRealPath("/");  
  •           String file = getInitParameter("Log4j-init-file");  
  •           if(file != null) {  
  •              PropertyConfigurator.configure(prefix+file);  
  •           }  
  •       }  
  •   
  •        public void doGet(HttpServletRequest req, HttpServletResponse res) {  
  •        }  
  • }  
  • public class Log4jInit extends HttpServlet {      public void init() {           String prefix = getServletContext().getRealPath("/");           String file = getInitParameter("Log4j-init-file");           if(file != null) {              PropertyConfigurator.configure(prefix+file);           }       }         public void doGet(HttpServletRequest req, HttpServletResponse res) {        } }
     
    웹. xml 에서 다음 servlet 를 웹 - application 으로 정의 합 니 다.
    Xml 코드
  •   
  • Log4j-initservlet-name>  
  • xx.xx.Log4jInitservlet-class>  
  •   
  • Log4j-init-fileparam-name>  
  • WEB-INF/classes/Log4j.propertiesparam-value>  
  • init-param>  
  • 1load-on-startup>  
  • servlet>  
  •  Log4j-init xx.xx.Log4jInit  Log4j-init-file WEB-INF/classes/Log4j.properties  1 
     
    초기 화 된 servlet 를 쓰 는 것 은 Log4j 를 가장 탄력 있 게 초기 화 하 는 방법 입 니 다.코드 에 제한 이 없습니다. servlet 의 init 방법 에서 정의 할 수 있 습 니 다.
    3. 설정 파일 에 따라 log4j 초기 화
    log4j 는 3 개의 설정 기 를 사용 하여 초기 화 할 수 있 습 니 다. Basic Configurator, DOMConfigurator, Property Configurator 의 문법 은 다음 과 같 습 니 다.
  • Basic Configurator. configure (): 결 성 Log4j 환경 을 자동 으로 빠르게 사용 합 니 다.
  • Property Configurator. configure (String configFilename): 자바 의 특성 파일 로 작 성 된 프로필 을 읽 습 니 다.
  • DOMConfigurator. configure (String filename): XML 형식의 프로필 을 읽 습 니 다.

  • Property Configurator 를 사용 하면 모든 시스템 에 적 용 됩 니 다.다음 문장:   PropertyConfigurator.configure("log4j.properties");
    로그 4j. properties 를 설정 파일 로 로그 4j 환경 을 초기 화 했 습 니 다.주의: 이 문 구 는 시스템 이 시 작 될 때 한 번 만 실행 해 야 합 니 다.
    예 를 들 어 ActionServlet 의 init () 방법 에서 한 번 호출 합 니 다.
    자바 코드
  • public class ActionServlet extends HttpServlet{  
  • ...  
  • /** 
  • * Initialize global variables 
  • */  
  • public void init() throws ServletException {  
  • // 액 션 자원 초기 화  
  • try{  
  • initLog4j();  
  • ...  
  • }catch(IOException e){  
  • throw new ServletException("Load ActionRes is Error");  
  • }  
  • }  
  • ...  
  • protected void initLog4j(){  
  • PropertyConfigurator.configure("log4j.properties");  
  • }  
  • ...  
  • }//end class ActionServlet
  • 좋은 웹페이지 즐겨찾기