프로그램이 실행되는 동안 몇 시에 실행되었는지, 결과는 어땠는지 등 많은 정보가 생성된다는 것을 우리는 알고 있습니다. 프로그램의 실행 상태를 더 잘 이해할 수 있도록 로그를 통해 볼 수 있습니다. 로그는 콘솔에 출력되거나 지정된 파일로 출력될 수 있습니다. 다음 기사에서 자세히 소개하겠습니다.
Log4J는 로그 처리를 위한 Apache Company의 오픈 소스 프로젝트입니다. 다운로드 주소:
https://logging.apache.org/log4j/2.x/download.html
다운로드가 완료되면 접미사 이름이 jre인 패키지를 얻을 수 있습니다.
를 열어 새 프로젝트를 만든 다음 프로젝트에 새 lib 패키지를 만들고 여기에 log4j.jar 패키지를 넣습니다.
그런 다음 src에 클래스를 만듭니다.
그림의 단계를 따르세요.
여기에 jre 패키지를 추가하세요.
위 작업을 완료한 후 클래스에서 객체를 생성할 수 있습니다.
참고: 여기에서 선택한 Logger 패키지는 Apache의 패키지입니다. 여기서 잘못된 패키지를 선택하지 않도록 주의하세요!
import org.apache.log4j.Logger; public class logTest { public static void main(String[] args) { //导入对象: Logger log = Logger.getLogger(logTest.class); log.error("用于记录error级别的信息"); //记录严重错误 log.warn("用于记录warn级别的信息"); //记录警告 log.info("用于记录info级别的信息"); //记录信息 log.debug("用于记录debug级别的信息"); //记录debug } }
그런 다음 구성 파일을 만들어야 합니다.
새 파일 파일을 만듭니다. 파일 접미사는 속성이어야 합니다.
그런 다음 새 파일을 만들고 이름을 resources로 설정할 수 있습니다. 형식을 다음 그림으로 변경합니다.
그런 다음 방금 생성한 구성 파일을 이 파일에 넣습니다.
log.properties에서 다음 세 가지 가장 중요한 정보를 구성해야 합니다.
Configure 프로그램의 로그 파일에 기록되는 로깅 수준
로그 출력 대상을 지정하세요. 로그를 프로그램의 콘솔(일시적 상태)에 기록할지 디스크의 파일(영구 저장소)에 기록할지 여부
콘솔이나 파일로 출력되는 로그 정보의 출력 형식을 지정하거나, 로그 정보가 어떤 형식으로 기록되는지 지정합니다.
설정된 템플릿은 다음과 같습니다.
log.properties에 직접 복사합니다.
# 1. 출력 수준 정보를 설정합니다. 정보 및 더 높은 수준을 로그 파일에 기록할 수 있지만 더 낮습니다. 예를 들어, 디버그 레벨은 로그 파일에 기록되지 않습니다
# stdout은 설정된 로그 레코드의 대상입니다(이름은 임의로 선택될 수 있으며 당시 일치해야 합니다)
log4j.rootLogger=info,stdout# 2. 로그 기록 설정 대상(ConsoleAppender가 콘솔에 기록됨)
log4j.appender.stdout=org.apache.log4j.ConsoleAppender#3 기록의 형식이나 스타일을 설정합니다(System.err은 빨간색 스타일입니다. , System.out은 블랙 스타일입니다 )
log4j.appender.stdout.Target=System.err
# 레코드 형식을 설정하세요
#PatternLayout은 사용자 정의 규칙에 따라 배치됩니다(%d %l %m %n은 지정된 규칙입니다) 레이아웃)
log4j.appender.stdout .layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %l %m %n
완료 후 이 구성 정보를 먼저 무시할 수 있습니다. 위 구성을 먼저 실행해 보겠습니다. 위 코드:
이런 일이 발생하면 올바른 것입니다. 이 로그의 기능을 보기 위해 코드를 다시 작성해 보겠습니다.
import org.apache.log4j.Logger; import java.util.Scanner; public class test2 { public static void main(String[] args) { Logger logger = Logger.getLogger(test2.class); Scanner input = new Scanner(System.in); try{ System.out.println("请输入除数:"); int a = input.nextInt(); logger.debug("bug:输入除数"+a); logger.info("info:输入除数"+a); System.out.println("请输入被除数:"); int b = input.nextInt(); logger.debug("bug:输入除数"+b); logger.info("info:输入除数"+b); int c = a/b; //把结果记录到日志文件中 logger.debug("bug:结果"+c); logger.info("info:结果"+c); System.out.println("结果是:"+c); } catch (Exception e) { e.printStackTrace(); System.out.println(e.getMessage()); }finally { System.out.println("程序结束!!"); } } }
이것은 나눗셈 연산입니다. 먼저 실행하고 효과를 확인하세요.
프로그램에서 실행한 모든 단계가 log 다음으로 구성 파일이 콘솔에 출력되도록 설정되어 있기 때문에 로그 정보가 콘솔에 직접 표시되도록 지정 파일로 출력해야 하는 경우 다음과 같이 구성해야 합니다.
그런 다음 실행합니다. 디비전 프로그램:
로그 정보는 지정된 파일로 출력되도록 설정되어 있기 때문에 콘솔에 표시되지 않습니다. 설정된 경로에 따라 다음과 같이 볼 수 있습니다.
이러한 기록에는 시간 정보, 프로그램 이름 정보 및 모든 정보가 있습니다. 프로그램의 어느 라인에서 무슨 일이 일어났는지에 대한 정보가 기록됩니다. 물론 더 많은 출력 형식이 있으므로 필요에 따라 설정할 수 있습니다!
여기서 Xiaoying 선배가 Log4j 로깅에 대해 이야기한 곳입니다. 이러한 단계를 완료하면 다음 로그 출력 수준도 기록해야 합니다.
로그 출력 수준:
1.off: 가장 높은 수준, 모든 로깅을 끄는 데 사용됨
2.fatal은 심각한 오류가 발생할 때마다 응용 프로그램이 종료됨을 나타냅니다.
3.error는 오류 이벤트 전송을 나타냅니다. 하지만 여전히 시스템 작동에는 영향을 미치지 않습니다
4.warn 발생할 수 있는 잠재적인 오류 상황을 나타냅니다
5.info 일반 사용자가 프로그램의 실행 프로세스를 기록합니다
6.debug 일반적으로 디버깅 정보 기록에 사용됩니다
7.all 가장 낮습니다. 레벨, 모든 로깅 켜기에 사용됨
위 내용은 Java에서 Log4j 로그를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!