Log4j 프레임 워 크 설정 파일 log4j. properties 설정 사용 설명

17394 단어 Log4jLog4j 학습
1. Log4j 설정 파일 분류
Log4j 는 두 가지 프로필 형식 을 지원 합 니 다. 하 나 는 XML 형식의 파일 입 니 다. 하 나 는 properties (key = value) 파일 입 니 다. 그 중에서 properties 형식의 프로필 이 가장 자주 사용 되 고 고정된 파일 이름 인 log4j. properties 가 있 습 니 다. 다음은 properties 파일 을 프로필 로 사용 하 는 방법 을 소개 합 니 다.
2. log4j. properties 설정 파일 상세 설명
이전 글 에서 Log4j 프레임 워 크 의 주요 업무 내용 은 세 가지 기능 을 중심 으로 한다 고 지적 했다.
  • 로그 정보 생 성
  • 로그 정 보 를 지정 한 위치 로 출력 합 니 다
  • 출력 스타일 조정
  • Log4j 의 설정 파일 은 주로 이 세 가지 기능 의 실현 방식 을 설정 합 니 다.
    1. rootLogger 설정
    rootLogger 의 설정 방식:
    log4j.rootLogger = level,appenderName1,appenderName2, .....

    rootLogger 설정 상세 설명
    level 은 로그 기록 의 우선 순위 입 니 다. OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL 또는 사용자 정의 단계 로 나 뉘 어 있 습 니 다. 기본 우선 순위: ALL < DEBUG < INFO Log4j 는 ERROR, WARN, INFO, DEBUG 등 네 단계 만 사용 하 는 것 을 권장 합 니 다.여기 서 정 의 된 단 계 를 통 해 프로그램 에서 해당 단계 의 로그 정 보 를 제어 할 수 있 는 스위치 입 니 다.예 를 들 어 여기 서 INFO 단 계 를 정의 하면 프로그램의 모든 DEBUG 단계 로그 정 보 는 인쇄 되 지 않 습 니 다.
    appenderName 은 로그 정보 출력 위치 로 여러 출력 목적 지 를 동시에 지정 할 수 있 습 니 다.
    2. 로그 정보 출력 목적지 Appender 설정
    Appender 설정 방법:
    log4j.appender.appenderName = Log4j   appender 
    log4j.appender.appenderName.    =    
    .....
    log4j.appender.appenderName.    =    

    Appender 설정 상세 설명
    Log4j 가 제공 하 는 appender 는 다음 과 같은 5 가지 가 있 는데 각각 로그 정 보 를 5 개의 서로 다른 플랫폼 으로 출력 할 수 있 습 니 다.
    org.apache.log4j.ConsoleAppender(   )
    org.apache.log4j.FileAppender(  )
    org.apache.log4j.DailyRollingFileAppender(          )
    org.apache.log4j.RollingFileAppender(                     )
    org.apache.log4j.WriterAppender(                   )

    ConsoleAppender
    Threshold = WARN: 로그 메시지 의 출력 최저 단 계 를 지정 합 니 다.ImmediateFlush = true: 기본 값 은 true 입 니 다. 모든 메시지 가 즉시 출력 된다 는 뜻 입 니 다.Target = System. err: 기본 값 은 System. out 입 니 다. 출력 콘 솔 을 지정 합 니 다.
    FileAppender
    Threshold = WARN: 로그 메시지 의 출력 최저 단 계 를 지정 합 니 다.ImmediateFlush = true: 기본 값 은 true 입 니 다. 모든 메시지 가 즉시 출력 된다 는 뜻 입 니 다.File = mylog. txt: mylog. txt 파일 에 메 시 지 를 출력 합 니 다.Append = false: 기본 값 은 true 입 니 다. 지정 한 파일 에 메 시 지 를 추가 할 것 입 니 다. false 는 메시지 가 지정 한 파일 내용 을 덮어 쓰 는 것 을 말 합 니 다.
    DailyRollingFileAppender
    Threshold = WARN: 로그 메시지 의 출력 최저 단 계 를 지정 합 니 다.ImmediateFlush = true: 기본 값 은 true 입 니 다. 모든 메시지 가 즉시 출력 된다 는 뜻 입 니 다.File = mylog. txt: mylog. txt 파일 에 메 시 지 를 출력 합 니 다.Append = false: 기본 값 은 true 입 니 다. 지정 한 파일 에 메 시 지 를 추가 할 것 입 니 다. false 는 메시지 가 지정 한 파일 내용 을 덮어 쓰 는 것 을 말 합 니 다.DatePattern = "." yyy - ww: 일주일 에 한 번 씩 파일 을 스크롤 합 니 다. 즉, 매주 새로운 파일 이 생 성 됩 니 다.물론 월, 주, 일, 시 와 분 을 지정 할 수도 있다."yyy - MM: 매월 2)". "yyy - www: 매주 3)". "yyy - MM - dd: 매일 4)". "yyy - MM - dd - a: 매일 두 번 5)". "yyy - MM - dd - HH: 시간 당 6)". "yyy - MM - dd - HH - mm: 분당
    RollingFileAppender
    Threshold = WARN: 로그 메시지 의 출력 최저 단 계 를 지정 합 니 다.ImmediateFlush = true: 기본 값 은 true 입 니 다. 모든 메시지 가 즉시 출력 된다 는 뜻 입 니 다.File = mylog. txt: mylog. txt 파일 에 메 시 지 를 출력 합 니 다.Append = false: 기본 값 은 true 입 니 다. 지정 한 파일 에 메 시 지 를 추가 할 것 입 니 다. false 는 메시지 가 지정 한 파일 내용 을 덮어 쓰 는 것 을 말 합 니 다.MaxFileSize = 100 KB: 접 두 사 는 KB, MB 또는 GB 일 수 있 습 니 다. 로그 파일 이 이 시간 에 도착 하면 자동 으로 스크롤 되 고 원래 내용 을 my log. log. 1 파일 로 이동 합 니 다.MaxBackupIndex = 2: 스크롤 파일 의 최대 수 를 지정 합 니 다.
    3. 로그 정보의 형식 설정 (레이아웃)
    로그 정보 형식의 설정 방식:
    log4j.appender.appenderName.layout = Log4j   layout 
    log4j.appender.appenderName.layout.   =  
    .....
    log4j.appender.appenderName.layout.   =  

    로그 정보 형식의 설정 상세 설명
    Log4j 가 제공 하 는 layot 는 다음 과 같은 몇 가지 가 있 습 니 다.
    org.apache.log4j.HTMLLayout( HTML      ),
    org.apache.log4j.PatternLayout(           ),
    org.apache.log4j.SimpleLayout(               ),
    org.apache.log4j.TTCCLayout(         、  、      )

    HTMLLayout
    LocationInfo = true: 기본 값 은 false 입 니 다. 자바 파일 이름과 줄 번 호 를 출력 합 니 다. Title = my app file: 기본 값 은 Log4J Log Messages 입 니 다.
    PatternLayout
    ConversionPattern =% m% n: 지정 한 메 시 지 를 포맷 하 는 방법 을 지정 합 니 다.
    XMLLayout
    LocationInfo = true: 기본 값 은 false 입 니 다. 자바 파일 과 줄 번호 Log4J 를 출력 할 때 C 언어 와 유사 한 printf 함수 의 인쇄 형식 으로 로그 정 보 를 포맷 합 니 다. 인쇄 매개 변 수 는 다음 과 같 습 니 다.
    og4j.appender.A1.layout.ConversionPattern=%-4r %-5p %d{yyyy-MM-dd HH:mm:ssS} %c %m%n

    로그 정보 형식 에서 몇 개의 기호 가 대표 하 는 의미:
    - X 번: X 정보 출력 시 왼쪽 정렬;%p: 출력 로그 정보 우선 순위, 즉 DEBUG, INFO, WARN, ERROR, FATAL,% d: 출력 로그 시점 의 날짜 나 시간, 기본 형식 은 ISO 8601 이 며, 그 다음 에 형식 을 지정 할 수 있 습 니 다. 예 를 들 어% d {yy MMM dd HH: mm: ss, SSS},출력 유사 성: 2002 년 10 월 18 일 22: 10: 28, 921% r: 출력 자체 응용 프로그램 이 이 로그 정 보 를 출력 하 는 데 소요 되 는 밀리초 수% c: 출력 로그 정보 에 속 하 는 클래스 입 니 다. 보통 해당 클래스 의 전체 이름% t: 출력 에서 이 로그 이벤트 가 발생 하 는 스 레 드 이름% l: 출력 로그 이벤트 의 발생 위치 설정 은% C.% M (% F:% L) 의 조합 에 해당 합 니 다. 클래스 이름, 발생 하 는 스 레 드 를 포함 합 니 다.그리고 줄 수.예: Testlog 4. main (TestLog4. java: 10)% x: 현재 스 레 드 와 연 결 된 NDC (내장 진단 환경) 를 출력 합 니 다. 특히 자바 servlets 와 같은 다 중 클 라 이언 트 다 중 스 레 드 응용 에 사 용 됩 니 다.%%:'%' 문자% F: 출력 로그 메시지 가 생 겼 을 때 있 는 파일 이름% L: 출력 코드 의 줄 번호% m: 출력 코드 에서 지정 한 메시지, 로그 의 구체 적 인 정보% n: Enter 줄 바 꿈 자 를 출력 합 니 다. Windows 플랫폼 은 '\ r', Unix 플랫폼 은 '출력 일지 정보 줄 바 꿈' 입 니 다.
    % 와 패턴 문자 사이 에 수정자 를 추가 하여 최소 너비, 최대 너비, 텍스트 와 의 정렬 방식 을 제어 할 수 있 습 니 다.예:
    1)% 20c: 출력 category 의 이름 을 지정 합 니 다. 최소 폭 은 20 입 니 다. category 의 이름 이 20 보다 작 으 면 기본 값 으로 오른쪽 정렬 합 니 다.2)% - 20c: 출력 category 의 이름 을 지정 합 니 다. 최소 폭 은 20 입 니 다. category 의 이름 이 20 보다 작 으 면... -"번 호 는 왼쪽 정렬 을 지정 합 니 다. 3)%. 30c: 출력 category 의 이름 을 지정 합 니 다. 최대 폭 은 30 입 니 다. category 의 이름 이 30 보다 크 면 왼쪽 에 있 는 문 자 를 자 르 지만 30 보다 작 으 면 빈 칸 이 없습니다. 4)% 20.30c: category 의 이름 이 20 보다 작 으 면 빈 칸 을 보충 하고 오른쪽 정렬 합 니 다. 이름 이 30 자 이상 이면 왼쪽 에서 멀리 판 매 된 문 자 를 건 네 줍 니 다."잘라 버리다
    3. log4j. properties 설정 파일 사례
    위의 설정 파일 에 대한 분석 에 따 르 면 구체 적 인 log4j. properties 설정 파일 을 제시 하여 여러 가지 설정 을 완전 하 게 진행 하 였 습 니 다.
    log4j.rootLogger=INFO,consoleAppender,logfile,MAIL
    log4j.addivity.org.apache=true
    #ConsoleAppender,     
    #FileAppender,      
    #SMTPAppender,       
    #SocketAppender,Socket   
    #NTEventLogAppender,Window NT   
    #SyslogAppender,
    #JMSAppender,
    #AsyncAppender,
    #NullAppender
    #    :RollingFileAppender
    #log4j.rootLogger = INFO,logfile
    log4j.appender.logfile = org.apache.log4j.RollingFileAppender
    log4j.appender.logfile.Threshold = INFO
    #       INFO   
    log4j.appender.logfile.File = INFO_log.html
    #   log     
    Log4j       
    10
    log4j.appender.logfile.Append = true
    #     true,     ,false           
    log4j.appender.logfile.MaxFileSize = 1MB
    #    log      ,            1     # KB ,MB,GB
    log4j.appender.logfile.MaxBackupIndex = 3
    #      3      
    log4j.appender.logfile.layout = org.apache.log4j.HTMLLayout
    #        
    log4j.appender.logfile.layout.LocationInfo = true
    #         
    log4j.appender.logfile.layout.Title
    =title:\u63d0\u9192\u60a8\uff1a\u7cfb\u7edf\u53d1\u751f\u4e86\u4e25\u91cd\u9519\u8b
    ef
    #html     < title >
    ############################## SampleLayout ####################################
    # log4j.appender.logfile.layout = org.apache.log4j.SampleLayout
    ############################## PatternLayout ###################################
    # log4j.appender.logfile.layout = org.apache.log4j.PatternLayout
    # log4j.appender.logfile.layout.ConversionPattern =% d % p [ % c] - % m % n % d
    ############################## XMLLayout #######################################
    # log4j.appender.logfile.layout = org.apache.log4j.XMLLayout
    # log4j.appender.logfile.layout.LocationInfo = true #         
    ############################## TTCCLayout ######################################
    # log4j.appender.logfile.layout = org.apache.log4j.TTCCLayout
    # log4j.appender.logfile.layout.DateFormat = ISO8601
    #NULL, RELATIVE, ABSOLUTE, DATE or ISO8601.
    # log4j.appender.logfile.layout.TimeZoneID = GMT - 8 : 00
    # log4j.appender.logfile.layout.CategoryPrefixing = false ##    true      
    # log4j.appender.logfile.layout.ContextPrinting = false ##    true        
    # log4j.appender.logfile.layout.ThreadPrinting = false ##    true      
    #       :
    #2007 - 09 - 13 14 : 45 : 39 , 765 [http - 8080 - 1 ] ERROR com.poxool.test.test -
    error       
    ###############################################################################
    #       :DailyRollingFileAppender
    #log4j.rootLogger = INFO,errorlogfile
    log4j.appender.errorlogfile = org.apache.log4j.DailyRollingFileAppender
    log4j.appender.errorlogfile.Threshold = ERROR
    log4j.appender.errorlogfile.File = ../logs/ERROR_log
    log4j.appender.errorlogfile.Append = true
    #    true,     ,false           
    log4j.appender.errorlogfile.ImmediateFlush = true
    #    ,     
    # ' . ' yyyy - MM:         log   
    # ' . ' yyyy - ww:          log   
    # ' . ' yyyy - MM - dd:        log   
    # ' . ' yyyy - MM - dd - a:              log   
    # ' . ' yyyy - MM - dd - HH:         log   
    # ' . ' yyyy - MM - dd - HH - mm:         log   
    Log4j       
    11
    log4j.appender.errorlogfile.DatePattern = ' . ' yyyy - MM - dd ' .log '
    #       
    log4j.appender.errorlogfile.layout = org.apache.log4j.PatternLayout
    log4j.appender.errorlogfile.layout.ConversionPattern =%d %p [ %c] - %m %n %d
    #     :
    #log4j.rootLogger = INFO,consoleAppender
    log4j.appender.consoleAppender = org.apache.log4j.ConsoleAppender
    log4j.appender.consoleAppender.Threshold = ERROR
    log4j.appender.consoleAppender.layout = org.apache.log4j.PatternLayout
    log4j.appender.consoleAppender.layout.ConversionPattern =%d %-5p %m %n
    log4j.appender.consoleAppender.ImmediateFlush = true
    #     ,     
    log4j.appender.consoleAppender.Target = System.err
    #     System.out     
    #    :SMTPAppender
    #log4j.rootLogger = INFO,MAIL
    log4j.appender.MAIL = org.apache.log4j.net.SMTPAppender
    log4j.appender.MAIL.Threshold = INFO
    log4j.appender.MAIL.BufferSize = 10
    log4j.appender.MAIL.From = yourmail@gmail.com
    log4j.appender.MAIL.SMTPHost = smtp.gmail.com
    log4j.appender.MAIL.Subject = Log4J Message
    log4j.appender.MAIL.To = yourmail@gmail.com
    log4j.appender.MAIL.layout = org.apache.log4j.PatternLayout
    log4j.appender.MAIL.layout.ConversionPattern =%d - %c -%-4r [%t] %-5p %c %x - %m %n
    #   :JDBCAppender
    log4j.appender.DATABASE = org.apache.log4j.jdbc.JDBCAppender
    log4j.appender.DATABASE.URL = jdbc:oracle:thin:@ 210.51 . 173.94 : 1521 :YDB
    log4j.appender.DATABASE.driver = oracle.jdbc.driver.OracleDriver
    log4j.appender.DATABASE.user = ydbuser
    log4j.appender.DATABASE.password = ydbuser
    log4j.appender.DATABASE.sql = INSERT INTO A1 (TITLE3) VALUES ( ' %d - %c %-5p %c %x - %m%n
    ' )
    log4j.appender.DATABASE.layout = org.apache.log4j.PatternLayout
    log4j.appender.DATABASE.layout.ConversionPattern =% d - % c -%- 4r [ % t] %- 5p % c %
    x - % m % n
    #          ,     org.apache.log4j.jdbc.JDBCAppender   getConnection()    
             ,     insert           
    

    좋은 웹페이지 즐겨찾기