Log4j 초보 자 빠 른 입문 강좌

10390 단어 log4j입문 하 다
간단 한 소개
Log4J Apache 의 오픈 소스 프로젝트 입 니 다.  http://jakarta.apache.org/log4j)프로젝트 에서 Log4J 를 사용 하면 로그 정 보 를 콘 솔,파일,GUI 구성 요소,심지어 데이터베이스 에 출력 하 는 것 을 제어 할 수 있 습 니 다.모든 로그 의 출력 형식 을 제어 할 수 있 습 니 다.로그 의 출력 단 계 를 정의 함으로써 로그 의 출력 과정 을 더욱 유연 하 게 제어 할 수 있 습 니 다.프로젝트 의 디 버 깅 을 편리 하 게 하 다.
결성
Log4J Loggers(로그 기록 기),Appenders(출력 단),Layout(로그 포맷 기)로 구성 되 어 있 습 니 다.그 중에서 Loggers 는 로그 의 출력 단계 와 로그 의 출력 여 부 를 제어 합 니 다.Appenders 가 지정 한 로그 의 출력 방식(콘 솔,파일 등 으로 출력);Layout 로그 정보의 출력 형식 을 제어 합 니 다.
로그 수준
Log4J 는 org.apache.log4j.Level 클래스 에서 OFF,FATAL,ERROR,WARN,INFO,DEBUG,ALL 7 가지 로그 단 계 를 정의 합 니 다.
  • OFF 최고 로그 단계,좌우 로그 닫 기
  • FATAL 프로그램 종료 오류 가 발생 할 수 있 습 니 다
  • ERROR 오류 가 발생 했 지만 시스템 의 계속 운행 에 영향 을 주지 않 습 니 다
  • WARN 경고,즉 잠재 적 인 오류 상황.
  • INFO 일반적으로 굵 은 입도 단계 에서 응용 프로그램의 운행 전 과정 을 강조 한다
  • DEBUG 일반적으로 입자 수준 에 사용 되 며,디 버 깅 응용 프로그램 에 매우 도움 이 된다
  • ALL 최저 레벨,모든 로그 기록 열기
  • 주:보통 4 단계 만 사용 하 며,우선 순 위 는 높 음 에서 낮 음 으로 ERROR>WARN>INFO>DEBUG
    Appender(출력 단자)
    Appender 는 로그 가 어디로 출력 되 는 지 지정 하 는 데 사용 되 며 로그 의 출력 목적 지 를 동시에 지정 할 수 있 습 니 다.Log4j 에서 자주 사용 하 는 출력 목적 지 는 다음 과 같은 몇 가지 가 있 습 니 다.

    레이아웃(로그 포맷 기)

    쾌속 입문
    먼저 maven 에 log 4 j 의 의존 도 를 도입 합 니 다.
    
    <dependency>
     <groupId>log4j</groupId>
     <artifactId>log4j</artifactId>
     <version>1.2.17</version>
    </dependency>
    Log4jTest 클래스 를 만 들 고 Log4j 의 사용 을 테스트 합 니 다:
    
    public class Log4JTest {
     
      public static void main(String[] args) {  
            //  Logger          
            Logger logger = Logger.getLogger(Log4JTest.class);
        //         ,    log4j.properties
        BasicConfigurator.configure();
        //         WARN,              ,        WARN      
        logger.setLevel(Level.WARN);
        logger.debug("  debug");
        logger.info("  info");
        logger.warn("  warn");
        logger.error("  error");
        logger.fatal("  fatal");
      }
     
    }
    여기 서 먼저 Logger.getLogger(Log4Test.class)를 통 해 Logger 인 스 턴 스 를 만 든 다음 Basic Configurator.configure()방법 으로 이 Logger 가 기본 설정 정 보 를 사용 하도록 지정 한 다음 looger.setLevel(Level.WARN)을 호출 하여 Logger 의 로그 출력 단 계 를 WARN 으로 설정 합 니 다.main 함 수 를 실행 하면 콘 솔 에서 warn 이상 의 오류 정 보 를 출력 합 니 다.콘 솔 출력 은 다음 과 같 습 니 다.
    0[main]WARN com.huang.log4j.Log4JTest-warn 입 니 다.
    0[main]WARN com.huang.log4j.Log4JTest-error 입 니 다.
    0[main]WARN com.huang.log4j.Log4JTest-fatal 입 니 다.
    주:Basic Configurator.configure()방법 이 호출 되 지 않 으 면 main 함 수 를 실행 할 때 오류 가 발생 합 니 다.Log4j 프레임 워 크 가 실 행 될 때 프로젝트 경로 에 있 는 log4j.properties 설정 파일 을 불 러 오기 때 문 입 니 다.지금 우리 프로젝트 에는 이 파일 이 없습니다.설정 파일 의 이름 이 log4j.properties 가 아니라면 Property Configurator.configure(String configFilename)를 통 해 설정 파일 의 이름 을 지정 할 수 있 습 니 다.
    포맷 기 사용
    Log4JTest 의 코드 수정:
    
    public class Log4JTest {
     
      public static void main(String[] args) {
        Logger logger = Logger.getLogger(Log4JTest.class);
        BasicConfigurator.configure();
        HTMLLayout layout = new HTMLLayout();
        // SimpleLayout layout = new SimpleLayout();
        try {
          FileAppender appender = new FileAppender(layout, "D:\\out.html", false);
          logger.addAppender(appender);
          //         info,              ,        WARN      
          logger.setLevel(Level.WARN);
          logger.debug("  debug");
          logger.info("  info");
          logger.warn("  warn");
          logger.error("  error");
          logger.fatal("  fatal");
        } catch (IOException e) {
          e.printStackTrace();
        }
      }
    }
    먼저 HTML 형식의 포맷 기(HTML Layout)를 만 든 다음 파일 출력 단(FileAppender)이 지정 한 출력 단의 형식 을 HTML 형식 으로 만 듭 니 다.여기 서 출력 경 로 를 D 디스크 의 out.html 파일 로 지정 합 니 다.그리고 logger.addAppender(appender)를 통 해 파일 출력 단 을 Logger 에 불 러 옵 니 다.main 함 수 를 실행 하면 D 디스크 에서 out.html 파일 을 생 성하 고 파일 을 엽 니 다.그 안에 있 는 정 보 는 코드 에서 출력 한 로그 정보 입 니 다.

    log4j.properties 프로필 사용
    위 에서 코드 를 사용 하여 Logger 의 출력 형식 을 설정 합 니 다.그러면 출력 로그 의 클래스 마다 설정 을 한 번 씩 설정 해 야 합 니 다.너무 번 거 롭 습 니 다.프로젝트 경로 에서 log4j.properties 설정 파일 을 새로 만 들 고 로그 의 출력 형식 등 정 보 를 설정 하면 Log4J 프레임 워 크 는 자동 으로 설정 파일 을 불 러 오고 설정 정 보 를 Logger 에 설정 합 니 다.가장 간단 한 프로필 은 다음 과 같 습 니 다.
    
    #        
    log4j.appender.Console=org.apache.log4j.ConsoleAppender
    log4j.appender.Console.layout=org.apache.log4j.PatternLayout
    log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
     
    #       
    log4j.appender.A = org.apache.log4j.DailyRollingFileAppender
    log4j.appender.A.File = D:/log.txt #         
    log4j.appender.A.Append = true
    log4j.appender.A.Threshold = DEBUG
    log4j.appender.A.layout = org.apache.log4j.PatternLayout #           
    log4j.appender.A.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n #         
    log4j.appender.A.encoding=UTF-8 #         
     
    #             
    log4j.rootLogger=DEBUG,Console,A
    log4j.properties 설정 파일 에서 로그 출력 단계 와 출력 단 을 정의 하고 출력 단 에서 각각 로그 의 출력 형식 을 설정 합 니 다.
    log4j 는 C 언어 와 유사 한 printf 함수 의 인쇄 형식 으로 로그 정 보 를 포맷 합 니 다.구체 적 인 자리 표시 자 와 그 의 미 는 다음 과 같 습 니 다.
    %m   출력 코드 에서 지정 한 로그 정보
    %p    출력 우선 순위 및 DEBUG,INFO 등
    %n    줄 바 꿈 문자(윈도 플랫폼 의 줄 바 꿈 문 자 는"",유 닉 스 플랫폼 은"")
    %r     출력 은 응용 프로그램 에서 시작 하여 이 로그 정 보 를 출력 하 는 데 걸 리 는 밀리초 입 니 다.
    %c    출력 출력 문 에 속 하 는 클래스 의 전체 이름
    %t     이 로 그 를 만 드 는 스 레 드 의 전체 이름 을 출력 합 니 다.
    %d    출력 서버 의 현재 시간,기본 형식 은 ISO 8601 이 며,뒤에 형식 을 지정 할 수도 있 습 니 다.예:%d{yyy 년 MM 월 dd 일 HH:mm:ss}
    %l     출력 로그 시간 에 발생 하 는 위 치 는 클래스 이름,발생 하 는 스 레 드,그리고 코드 에 있 는 줄 수 를 포함 합 니 다.예 를 들 어 Test.main(Test.java:10)
    %F    출력 로그 메시지 가 생 성 되 었 을 때 있 는 파일 이름
    %L    출력 코드 의 줄 번호
    %x    현재 스 레 드 와 연 결 된 NDC 출력(내장 진단 환경)
    %%   "%"문 자 를 출력 합 니 다.
    %와 문자 사이 에 장식 부 호 를 추가 하여 최소 너비,최대 너비 와 텍스트 의 방식 을 제어 할 수 있 습 니 다.예:
    %5c    출력 category 이름,최소 폭 은 5,category<5,기본 값 으로 오른쪽 정렬
    %-5c   출력 category 이름,최소 폭 은 5,category<5,"-"번 호 는 왼쪽 정렬 을 지정 하면 빈 칸 이 있 습 니 다.
    %.5c   category 이름 을 출력 합 니 다.최대 폭 은 5,category>5 입 니 다.왼쪽 에 있 는 문 자 를 자 릅 니 다.<5 는 빈 칸 이 없습니다.
    %20.30c   category 이름<20 빈 칸 을 보충 하고 오른쪽 정렬,>30 자 는 왼쪽 에서 멀리 판 매 된 문 자 를 차단 합 니 다.
    그리고 테스트 클래스 Log4JTest.java 를 작성 합 니 다:
    
    public class Log4JTest {
     
      public static void main(String[] args) {  
        //  Logger          
        Logger logger = Logger.getLogger(Log4JTest.class);
        logger.debug("  debug");
        logger.info("  info");
        logger.warn("  warn");
        logger.error("  error");
        logger.fatal("  fatal");
      }
    }
    프로그램 실행 후 콘 솔 출력 텍스트:
    2018-07-12 14:36:36,114 [main] WARN  [com.huang.log4j.Log4JTest]-warn 입 니 다.
    2018-07-12 14:36:36,114[main]ERROR[com.huang.log4j.Log4JTest]-error 입 니 다.
    2018-07-12 14:36:36,114[main]FATAL[com.huang.log4j.Log4JTest]-fatal 입 니 다.
    D 디스크 에 log.txt 파일 을 생 성 합 니 다.텍스트 내용 은 다음 과 같 습 니 다.

    총결산
    이상 은 이 글 의 모든 내용 입 니 다.본 고의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가 치 를 가지 기 를 바 랍 니 다.여러분 의 저희 에 대한 지지 에 감 사 드 립 니 다.

    좋은 웹페이지 즐겨찾기