간단한 구성
#指定logger # 配置Logger组件 # 设定Log4j的日志级别(error warn info debug) # 输出目的地(Console, logfile是appender的名字,是自己定义的,后面才赋予具体的含义) log4j.rootLogger=debug, Console, logfile ################################################################################################################### #指定appender(目的地) #设定Logger的Console(appender的名字)的Appender类型为控制台输出 #org.apache.log4j.ConsoleAppender 表明 Console是控制台输出 log4j.appender.Console=org.apache.log4j.ConsoleAppender #输出的格式 #设定Console的Appender布局Layout #org.apache.log4j.PatternLayout(可以灵活地指定布局模式)包含选项: # ConversionPattern=%m%n :指定怎样格式化指定的消息 log4j.appender.Console.layout=org.apache.log4j.PatternLayout #2009-09-29 07:30:43,265 INFO com.itcast.web.controller.SearchCdServlet.doGet() - e log4j.appender.Console.layout.ConversionPattern=%d %p %c.%M() - %m%n ################################################################################################################### #设定Logger的logfile(appender的名字)的Appender类型为文件大小到达指定尺寸的时候产生一个新的文件 log4j.appender.logfile=org.apache.log4j.RollingFileAppender #设定文件的输出路径(指定文件的名字和路径,tomcat的启动路径) log4j.appender.logfile.File=../logs/logstrore.log #设定后缀可以是KB, MB 或者是 GB. 在日志文件到达该大小时,将会自动滚动,即将原来的内容移到logstrore.log.1文件 log4j.appender.logfile.MaxFileSize=2048KB #Keep three backup files.指定可以产生的滚动文件的最大数 log4j.appender.logfile.MaxBackupIndex=4#设定logfile的Appender布局Layout log4j.appender.logfile.layout=org.apache.log4j.PatternLayout log4j.appender.logfile.layout.ConversionPattern=%d %p %c.%M() - %m%n ###################################################################################################################
Log4JIntroduction
Log4J는 Apache의 오픈 소스 프로젝트입니다. Log4J를 사용하여 로그 정보의 목적을 지정할 수 있습니다. 콘솔, 파일, CUI 구성요소, NT 이벤트 레코더 등의 출력 위치에서 각 로그의 출력 형식을 제어할 수도 있습니다. 또한, 로그 정보의 수준을 정의함으로써 로그 출력을 매우 세부적으로 제어할 수 있습니다. 가장 흥미로운 점은 이러한 기능을 애플리케이션 코드를 수정하지 않고도 구성 파일을 통해 유연하게 구성할 수 있다는 것입니다.
애플리케이션에 로그를 출력하는 데는 세 가지 목적이 있습니다.
l 코드의 변수 변경 사항을 모니터링하고 다른 애플리케이션의 통계 분석을 위해 주기적으로 데이터를 파일에 기록합니다.
l 향후 사용을 위한 참조로 코드 런타임 궤적을 추적합니다. for audit
l 통합 개발 환경에서 디버거 역할을 하며 코드의 디버깅 정보를 파일과 콘솔에 인쇄합니다.
프로그램에서 로그를 출력하려면 가장 일반적인 방법은 코드에 명령문을 삽입하는 것입니다. 로그는 콘솔이나 파일로 출력될 수 있습니다. 더 나은 접근 방식은 코드의 본문을 일련의 인쇄 문으로 가득 채우는 것보다 로그 작업 클래스를 구성하여 이러한 작업을 캡슐화하는 것입니다.
오늘날 재사용 가능한 구성 요소에 중점을 두고 재사용 가능한 로그 작업 클래스 이름을 처음부터 개발하는 것 외에도 Apache는 강력한 기성 로그 작업 패키지 Log4J를 제공합니다.
Log4J는 주로 세 가지 주요 구성 요소로 구성됩니다.
l 로거: 로그를 생성하고 로그 정보를 분류하고 필터링할 수 있는 역할을 담당합니다. 일반인의 관점에서 말하면 어떤 로그 정보가 출력되어야 하는지, 어떤 로그 정보가 출력되어야 하는지를 결정하는 것입니다. 무시
l Appender: 로그 정보 출력 대상을 정의하고 로그 정보가 출력되어야 하는 위치를 지정합니다. 이러한 장소는 콘솔, 파일, 네트워크 장치 등이 될 수 있습니다.
l 레이아웃: 로그 정보의 출력 형식을 지정합니다.
이 세 가지 구성 요소가 함께 작동하여 개발자는 로그 정보 범주에 따라 정보를 기록하고 프로그램 실행 중에 로그 정보의 출력 형식과 로그 저장 위치를 제어할 수 있습니다.
Logger에는 여러 Appender가 있을 수 있습니다. 즉, 로그 정보가 동시에 여러 장치에 출력될 수 있습니다. 각 Appender는 레이아웃에 해당하며 레이아웃은 출력 로그 정보의 형식을 결정합니다.
실제 필요에 따라 프로그램이 실행 중인 콘솔에 로그 정보를 출력해야 한다고 가정하고, 로그 정보를 콘솔에 출력할 때는 SimplLayout 레이아웃, 이때 Logger, Appender, Layout 세 구성요소의 관계는 그림과 같습니다. 목적)
Log4J의 Appender 구성 요소는 로그 정보를 출력할 위치를 결정합니다. 현재 Log4J는 다음과 같은 목적으로 로그 정보 출력을 지원합니다.l Console
lFile
l
로거는 동시에 여러 Appender에 대응할 수 있습니다. 즉, Logger의 로그 정보는 동시에 여러 대상에 출력될 수 있습니다. 예를 들어, rootLogger에 대해 두 개의 Appender를 구성하려는 경우 하나는 파일이고 다른 하나는 콘솔입니다.
log4j.rootLogger =WARN,file,console rootLogger 로그 수준 및 출력 목적 구성 log4j.appender.file=org.apache.log4jRollingFileAppender
Log4j.appender.file=log.txtlog4j.appender.console=org.apache.log4j.ConsoleAppender
Layout 구성 요소 l org.apache.log4j.HTMLLayout(HTML 테이블 형식의 레이아웃) l org.apache 유형이 있습니다. log4j.PatternLayout (레이아웃 모드를 유연하게 지정할 수 있음) l org.apache.log4j.SimpleLayout (로그 정보 수준 및 정보 문자열 포함) l org.apache.log4j.TTCCLayout (로그 생성 시간, 스레드 및 범주 포함) 등 참고) Log4j 기본 사용법Log4J를 애플리케이션에서 사용하려면 먼저 Log4j의 다양한 구성 요소를 구성 파일에 구성한 후 프로그램에서 Log4JAPI를 통해 로그를 조작할 수 있습니다
구성 파일 정의 Log4J는 두 가지 구성 파일 형식을 지원합니다. 하나는 XML 형식이고 다른 하나는 Java 속성 파일
예: Log4j.rootLogger =WARN,file,console
Log4j에서는 높은 수준부터 낮은 수준까지의 우선순위는 ERROR>WARN>INFO>DEBUG입니다. 여기에 정의된 레벨을 통해 로그 정보가 애플리케이션의 해당 레벨로 전환되는 것을 제어할 수 있습니다. 예를 들어 여기에서 예약하세요. INFO 레벨이 정의되면 애플리케이션의 모든 DEBUG 레벨 로그 정보가 인쇄되지 않습니다. appenderName: 로그 정보가 출력되는 위치를 지정합니다. 동시에 여러 출력 대상을 지정할 수 있습니다. 모두: 모든 로그를 인쇄합니다. 끄기: 모든 로그를 닫습니다. 2. ConfigurationAppenderComponent
구문은 다음과 같습니다. j.appender.appenderName
=완전히.qualified.name.of.appender.class. log4j.appender.console=org.apache.log4j.ConsoleAppender
"완전히.qualified.name.of. appender.class" Threshold=WARN: 로그 메시지 지정 가장 낮은 값 출력 수준. ImmediateFlush=true: 기본값은 true입니다. 이는 모든 메시지가 즉시 출력된다는 의미입니다. Target=System.err: 기본적으로: System.out, 출력 콘솔을 지정합니다 B.FileAppender Option ImmediateFlush=true: 기본값은 true입니다. 이는 모든 메시지가 즉시 출력된다는 의미입니다. File=mylog.txt: mylog.txt 파일에 출력할 메시지를 지정합니다. 로 지정된 파일의 내용을 덮어쓴다는 의미입니다. 파일의 내용을 덮어쓴다는 의미입니다.
2)'.'yyyy-ww: 매주 MaxBackupIndex=2: 생성할 수 있는 최대 롤링 파일 수를 지정합니다. 3 구문은 다음과 같습니다. 1) log4j.appender.appenderName.layout=full.qualified.name.of.layout.class log4j.appender.console.layout.ConversionPattern=%d %p %c.%M()-%m%n 1.org.apache.log4j.HTMLLayout(HTML 테이블 형식의 레이아웃)에는 다음 옵션이 포함됩니다. LocationInfo=true: 기본값은 false, Java 파일 이름 및 줄 번호 출력
제목=내 앱 파일: 기본값은 Log4J 로그 메시지입니다. 변환 패턴=%m%n
:지정된 메시지의 형식을 지정하는 방법을 지정합니다.
l 구성 파일 읽기 및 Log4J 환경 구성 l 추적(객체 메시지): TRACE 수준의 로그 메시지를 출력합니다. 위의 로그 출력 방법은 출력되는 로그의 수준이 해당 로그에 대해 구성된 로그 수준보다 크거나 같은 경우에만 실제로 실행됩니다. 예를 들어 로거의 로그 수준이 WARN이면 프로그램에서 fatal(), error() 및 warning() 메소드가 실행되고 info() , debug() 및 Trace() 메소드는 실행되지 않습니다. 로그 인터페이스는 특정 수준의 로그 메시지 출력이 허용되는지 여부를 결정하는 일련의 메서드도 제공합니다. l isFatalEnabled() l isErrorEnabled() l …… l isTraceEnabled() 프로그램이 특정 수준의 로그 메시지를 출력하기 전에 위 메소드를 호출하여 해당 수준의 로그 출력 허용 여부를 확인하는 것이 애플리케이션 성능 향상에 도움이 됩니다. 예를 들어 다음 코드는 먼저 StringBuffer에 로그 메시지를 추가하고 마지막으로 로거의 debug() 메서드를 호출하여 로그를 출력합니다. StringBuffer buf = new StringBuffer(); buf.append("Login Successsul - "); buf.append("이름:"); buf.append(username); log.debug(buf.toString()); 위 코드의 경우 로거가 실행되지 않는 경우 실제로 DEBUG 수준 로그의 출력을 허용하면 로거를 실행하는 debug() 메서드는 메시지를 출력하지 않습니다. 이때 StringBuffer에 메시지를 추가하는 일련의 작업은 중복됩니다. 성능을 향상시키기 위해 isDebugEnabled() 메서드를 합리적으로 사용하여 애플리케이션이 중복 작업을 수행하지 않도록 할 수 있습니다. if(log.isDebugEnabled){ StringBuffer buf = new StringBuffer(); buf.append("로그인 성공 - "); buf.append("이름:"); buf.append(사용자 이름); log.debug(bug.toString()) ; } (이)LogFactoryInterface org.apache.commons.logging.LogFactory 인터페이스는 로거 인스턴스를 얻기 위한 두 가지 정적 메서드를 제공합니다. public static Log getLog(String 이름)은 LogConfigurationException을 발생시킵니다. public static Log getLog(클래스 클래스)는 LogConfigurationException을 발생시킵니다. 첫 번째 getLog() 메소드는 name 매개변수를 로거 이름으로 사용합니다. 두 번째 getLog() 메소드는 클래스 매개변수로 지정된 클래스 이름을 로거 이름으로 사용합니다. 두 번째 getLog입니다. () 메소드 구현: public static Log getLog(Class 클래스)가 throw합니다. LogConfigurationException{ getLog(class.getName); //call getLog(문자열 이름) } Summary Log4J는 크게 Logger, Appender, Layout 3가지 구성요소로 구성됩니다. Logger는 로그 정보의 출력을 제어하고, Appender는 로그 정보의 출력 대상을 결정하며, Layout은 로그 정보의 출력 형식을 결정합니다. Log4J를 사용하면 사용자가 구성 파일에서 이러한 구성 요소를 유연하게 구성할 수 있습니다. 프로그램에서 Log4J를 사용하는 것은 매우 편리합니다. 먼저 로거를 얻은 다음 구성 파일을 읽고 Log4J 환경을 구성한 다음 Logger 클래스의 적절한 메서드를 호출하여 출력해야 할 때마다 로그를 생성할 수 있습니다. 프로그램에 로그인합니다. |
위 내용은 Log4j의 기본 사용법 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!