아파치 오픈 소스 프레임 워크를 로깅 Log4j를 구성 안내서

우리는 또한, 아파치하여 Log4j의 log4j의 사용을 통해, 오픈 소스 프로젝트, 우리는 대상 로그 정보 전달 콘솔, 파일, GUI 컴포넌트, 또는 소켓 서버, NT 이벤트 로거, UNIX 시스템 로그 데몬 등입니다 제어 할 수 있습니다 각 로그의 출력 형식을 제어 할 수 있습니다 로그 정보의 수준에 의해 정의 된 각, 우리는 더주의 깊게 로그 생성 프로세스를 제어 할 수 있었다. 가장 편리한이 유연하게 애플리케이션 코드를 수정하지 않고, 구성 파일을 통해 구성 할 수 있다는 것입니다. HTTP : //www.apache.org/dyn/closer.cgi/logging/log4j/1.2.17/log4j-1.2.17이 가이드는 구성 및 Log4j를 사용하는 최신 버전을 다운로드의 Log4j의 1.x의 버전을 설명합니다. 지퍼

A는 이클립스 Log4j의 배치

1.1, 새로운 자바 프로젝트는 패키지의 log4j-1.2.17.jar를 가져, 아래 프로젝트 :

 

 

 

1.2, SRC에 log4j.propertiese 프로파일을 작성 복사 파일에 다음 붙여

### logger主要定义log4j支持的日志级别及输出目的地 ###
log4j. rootLogger= debug, stdout,file
 
### 配置控制台输出及输出格式 ###
log4j. appender. stdout= org. apache. log4j.ConsoleAppender
log4j. appender. stdout. Target= System.out
log4j. appender. stdout. layout= org. apache. log4j.PatternLayout
log4j. appender. stdout. layout. ConversionPattern= [% - 5 p]  % d{ yyyy- MM- dd HH: mm: ss, SSS}  method: % l% n% m%n
 
### 输出DEBUG级别以上的日志到工程根目录下的logs/ log.log文件,可以自行修改为绝对路径 ###
log4j. appender. file= org. apache. log4j.FileAppender
log4j. appender. file. File= logs/ log.log
log4j. appender. file. Append= 사실
log4j. appender. file. Threshold=DEBUG
log4j. appender. file. layout= org. apache. log4j.PatternLayout
log4j. appender. file. layout. ConversionPattern= % - d{ yyyy- MM- dd HH: mm: ss}  [  % t: % r ]  -  [  % p ]   % m%n

참고 : Eclipse로 붙여 파트너는 몇 가지 작은 "왜곡"이 표시됩니다 : 프로그램의 실행에 영향을주지 않습니다 유니 코드 인코딩 인 \ u6839을.

1.3, 자바 클래스에서 코드를 작성

패키지  com. xuetang9. kenny;
수입  org. apache. log4j. Logger;
/ **
 * 사용 Log4j의 인쇄 로그 정보 <BR/>
 * @author 케니
 * @version 1.0
 * 9시 41분 13초 @date 5 월 (8) 2018 니안 일 오후
 * @copyright 된 구 개 학교
 * /
공공  클래스  LoggerTest  {
    개인  정적  Logger logger =  Logger.getLogger ( LoggerTest의 .class);
    공공  정적  무효  메인 ( String[]  args)  {
        // 로깅 동작은, OFF로 계층 나누어, FATAL, ERROR, WARN, INFO, DEBUG, TRACE, 당신이 정의하는 ALL 또는 레벨.
        //의 log4j는 가장 낮은 우선 순위로 가장 높은, ERROR 있습니다, DEBUG를 정보를 WARN에서, 네 개의 레벨을 사용하는 것이 좋습니다.
        logger.debug ( "레코드 수준의 디버그 정보");
        logger.INFO ( "정보 레코드 레벨 정보");
        logger.warn ( "레코드 레벨 정보를 경고");
    }
}

1.4, 출력 :

콘솔 :

 

 


로그 / Log.log를 파일 :

 

 

 

두, Log4j를 기본 사용

Log4j는 매우 구성, 런타임에 외부 구성 파일을 통해입니다. 그것은 우선 순위 기록을 기준으로하고, 같은 목적지의 수에 기록 정보를 표시 할 수있는 메커니즘을 제공합니다 : 데이터베이스, 파일, 콘솔, UNIX 시스템 로그를.

Log4j는 세 가지 주요 구성 요소가 있습니다 :

- 로거 : 로그 정보를 캡처에 대한 책임.

- 펜더 : 선택의 다른 대상에 로그 정보를 게시에 대한 책임.

- 레이아웃 : 다른 스타일 형식의 로그 정보에 대한 책임.

정의 2.1, 구성 파일

XML 파일 및 속성 파일 (권장) : log4j에 또한 구성 파일을 통해 설정할 수 있습니다, 현재 두 개의 구성 파일 형식을 지원합니다.

1, 루트 로거를 구성, 구문은 다음과 같습니다

log4j. rootLogger= [ level],  appenderName1,  appenderName2,  ...

OFF로 기록 레벨 우선 순위를 나타내고, FATAL, ERROR, WARN, INFO, DEBUG, ALL 또는 사용자 레벨 (E, F, G 등). Log4j는 최저 우선 순위로 가장 높은, ERROR 있습니다, DEBUG를 정보를 WARN에서, 네 개의 레벨을 사용하는 것이 좋습니다. 여기에 수준에 의해 정의 된, 우리는 로그 정보의 적절한 수준의 응용 프로그램을 제어하기 위해 전환 할 수 있습니다. 예를 들어, 여기에 INFO 레벨의 정의에 모든 DEBUG 레벨의 로그 정보의 응용 프로그램이 인쇄되지 않습니다. appenderName 장소로 출력 로그 정보를 말한다. 여러 출력 대상을 지정할 수 있습니다.

다음으로도 2를 참조하면, 구성 정보 로그 출력 처합니다 (이 appender)이 구문은 :

log4j. appender. appenderName= fully. qualified. name. of. appender.수업
log4j.appender.appenderName.option1 =value1
    ...............
log4j. appender. appenderName. option=valueN

어떤 제공 펜더의 log4j는 다음과 같다, 프로젝트에 따르면 사용해야합니다 :

org. apache. log4j.ConsoleAppender            输出到控制台
org. apache. log4j.FileAppender               输出到文件
org. apache. log4j.DailyRollingFileAppender   每天产生一个日志文件
org. apache. log4j.RollingFileAppender        文件大小到达指定尺寸的时候产生一个新的文件
org. apache. log4j.WriterAppender             将日志信息以流格式发送到任意指定的地方

3 구성 로그 출력 포맷 (레이아웃), 다음 구문 :

log4j. appender. appenderName. layout= fully. qualified. name. of. layout.수업
log4j.appender.appenderName.layout.option1 =value1
    ..............
log4j. appender. appenderName. layout. option=valueN

Log4j를 제공 형식의 레이아웃은 다음과 같습니다 :

org. apache. log4j.HTMLLayout     HTML表格形式布局
org. apache. log4j.PatternLayout  可以灵活地指定布局模式(常用)
org. apache. log4j.SimpleLayout   包含日志信息的级别和信息字符串
org. apache. log4j.TTCCLayout     包含日志产生的时间、线程、类别等等信息

다음과 같이 Log4j의 로그 정보의 형식과 유사한 C 언어의 printf 함수는 출력 매개 변수는 다음과 같습니다

%p 输出优先级,即DEBUGINFOWARNERRORFATAL
%r 输出自应用启动到输出该log信息耗费的毫秒数
%c 输出所属的类目,通常就是所在类的全名
%t 输出产生该日志事件的线程名
%n 输出一个回车换行符,Windows平台为“rn”Unix平台为“n”
% d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:% d{ yyy MMM dd HH: mm: ss, SSS} ,输出类似:2,018 12 31  23 59 59 123
%의 l 输出日志事件的发生位置,包括类名、发生的线程,以及在代码中的行数。如:LoggerTest.main ( LoggerTest. java18)

4 로그 레벨

각 기록 장치는, 출력 로그 정보를 제어하는 ​​기록 레벨 (레벨 로그)이다. 내림차순은으로 나누어 져 있습니다에서 로그 수준 :

A : 주변의 모든 로깅을위한 최고 수준의 끕니다.

B : 치명적인 응용 프로그램을 종료하면 모든 심각한 오류가 발생하는 것을 지적했다.

C : 오류 오류가 사고 있지만, 여전히 시스템의 지속적인 작동에 영향을주지 않음을 지적했다.

D : 따뜻한 잠재적 인 오류 조건이있을 것이라는 점을 나타냅니다.

E : 일반 및 대단위 수준의 정보, 실행을 전체 응용 프로그램을 강조.

F는 : 일반적으로 응용 프로그램을 디버깅, 세밀한 수준에 사용되는 디버깅은 매우 도움이됩니다.

G : 모든 가장 낮은 수준은 모든 로그를 엽니 다.

이 수준은 org.apache.log4j.Level 클래스에 위의 정의됩니다. Log4j는 우선 순위가 낮은 높은에서 오류, 경고, 정보 및 디버그입니다 만 네 단계를 사용하는 것이 좋습니다. 로그 레벨을 이용함으로써, 응용 프로그램의 로그 정보에 대응하는 출력 레벨을 제어 할 수있다. 예를 들어, 정보 레벨 B 경우, 다음 (예 : 디버그 등) 로그 정보 정보 응용 프로그램 아래의 모든 수준은 인쇄되지 않습니다.

마이크로 채널 대중 번호로 드라이 노트 더 많은 관심을 : 기존의 구 개 학교

추천

출처www.cnblogs.com/ljxt/p/11613038.html