logo

Log4J 로깅 수준

로깅 수준은 로그 파일의 항목을 분류하는 데 사용됩니다. 그러나 그들은 매우 구체적인 방식, 즉 긴급성에 따라 분류합니다. 수준을 사용하면 다음과 같은 종류의 정보를 구분할 수 있습니다.

  • 검색 중에 로그 파일을 필터링할 수 있습니다.
  • 기록하는 정보의 양을 관리할 수 있습니다.

시스템 및 이벤트 로그에 제공되는 정보의 양과 유형은 구성 파일의 log4j 수준 설정에 의해 제어됩니다. 각 로그 메시지 앞에는 메시지 수준이 붙습니다.

로깅 수준은 다음의 인스턴스입니다. org.apache.log4j.레벨 수업.

Log4j에는 다음과 같은 로깅 수준이 있습니다.

로그 수준 설명
모두 이 수준은 모든 수준의 로깅을 활성화합니다. 여기에는 정의한 사용자 정의 로깅 수준이 포함됩니다. 이것이 구성되고 레벨이 전혀 고려되지 않으면 모든 어펜더가 로그 파일에 로그 이벤트를 붓기 시작합니다.
디버그 디버그는 개발 시 애플리케이션을 디버깅하는 데 많이 사용됩니다. 이 수준이 설정되면 모든 로그 메시지가 로그 파일에 나타납니다. 기본적으로 개발자의 몫입니다.
정보 INFO 로깅 수준은 일상적인 애플리케이션 작업에 대한 메시지를 기록하는 데 사용됩니다. 시스템 관리자는 실시간으로 정보 로그를 관찰하여 현재 시스템에서 무슨 일이 일어나고 있는지, 정상적인 흐름에 문제가 있는지 확인합니다.
경고하다 WARN 로그 수준은 문제가 있을 수 있으며 비정상적인 상황을 감지했음을 나타내는 데 사용됩니다. 서비스 호출을 요구했는데 자동 재시도에서 연결하기 전에 몇 번 실패했을 수도 있습니다. 예상치 못한 일이고 특이한 일이지만 실제 피해는 발생하지 않았으며 문제가 지속될지, 재발할지 알 수 없습니다. 누군가는 경고를 조사해야 합니다.
오류 ERROR 로그 수준은 즉시 조사해야 하는 심각한 문제를 나타내는 데 사용됩니다. FATAL만큼 심각하지는 않지만 여전히 문제가 됩니다. 이는 단순히 귀하의 애플리케이션이 실제로 원하지 않는 상태에 도달했음을 의미합니다. 예를 들어 예기치 않은 형식의 입력, 데이터베이스 사용 불가 등이 있습니다.
치명적인 ERROR와 같은 FATAL 로그 수준은 문제를 나타냅니다. 그러나 ERROR와 달리 매우 심각한 오류 이벤트를 지정합니다. 평소에는 그들의 존재를 별로 고려하지 않을 것이지만, 일단 나타나면 그것은 매우 나쁜 소식, 심지어 죽음의 적용에 대한 신호를 보냅니다.
끄다 이는 가능한 가장 높은 순위이며 로깅을 끄기 위한 것입니다.
추적하다 이는 최근 버전 1.2에 도입되었으며 디버그 수준 로그에 대한 추가 정보를 포함합니다.

로그 수준을 설정하는 방법은 무엇입니까?

log4j.properties에서 로그 수준 설정

 log4j.rootLogger=DEBUG, consoleAppender log4j.appender.consoleAppender=org.apache.log4j.ConsoleAppender log4j.appender.consoleAppender.layout=org.apache.log4j.PatternLayout log4j.appender.consoleAppender.layout.ConversionPattern=[%t] %-5p %c %x - %m%n #Log info messages for package 'com.javatpoint.web.controller' log4j.logger.com.javatpoint.web.controller=INFO, consoleAppender 

log4j.xml에서 로그 수준 설정

 

로그 수준은 어떻게 작동합니까?

로깅 수준의 작업은 실제로 매우 간단합니다. 런타임 중에 애플리케이션 코드는 수준이 있는 로깅 요청을 생성합니다. 동시에 로깅 프레임워크에는 임계값 역할을 하는 로그 수준이 구성되어 있습니다. 요청 수준이 구성된 수준 이상인 경우 구성된 대상에 기록됩니다. 그렇지 않은 경우 거부됩니다. 그것은 간단합니다.

이를 레벨에 대한 다음 순위 순서로 고려해 보겠습니다.

 ALL <trace < debug info warn error fatal off pre> <p>So if, for instance, the logging framework level is set to WARN, requests with any of the levels WARN, FATAL, and ERROR will be accepted, while the rest will be denied.</p> <img src="//techcodeview.com/img/log4j-tutorial/51/log4j-logging-levels.webp" alt="Log4J Logging Levels"> <p>In the above diagram, the vertical header displays the Level of the LogEvent, while the horizontal header shows the Level associated with the appropriate logging configuration.</p> <p>For the first column, you will see how the log works in each level. For example, for WARN, (FATAL, ERROR, and WARN) will be visible. For OFF, nothing will be visible.</p> <h3>Log4j Level Example</h3> <p> <strong>Configuration File:</strong> </p> <pre> # Define the root logger with appender file log = /usr/home/log4j log4j.rootLogger = WARN, FILE # Define the file appender log4j.appender.FILE=org.apache.log4j.FileAppender log4j.appender.FILE.File=${log}/log.out # Define the layout for file appender log4j.appender.FILE.layout=org.apache.log4j.PatternLayout log4j.appender.FILE.layout.conversionPattern=%m%n </pre> <p> <strong>Java Program:</strong> </p> <pre> import org.apache.log4j.*; public class LogClass { private static org.apache.log4j.Logger log = Logger.getLogger(LogClass.class); public static void main(String[] args) { log.trace(&apos;Trace Message!&apos;); log.debug(&apos;Debug Message!&apos;); log.info(&apos;Info Message!&apos;); log.warn(&apos;Warn Message!&apos;); log.error(&apos;Error Message!&apos;); log.fatal(&apos;Fatal Message!&apos;); } } </pre> <p>Now compile and run the above program and we would get the following output in c:/usr/home/log4j/log.out file:</p> <pre> Warn Message! Error Message! Fatal Message! </pre> <hr></trace>

자바 프로그램:

 import org.apache.log4j.*; public class LogClass { private static org.apache.log4j.Logger log = Logger.getLogger(LogClass.class); public static void main(String[] args) { log.trace(&apos;Trace Message!&apos;); log.debug(&apos;Debug Message!&apos;); log.info(&apos;Info Message!&apos;); log.warn(&apos;Warn Message!&apos;); log.error(&apos;Error Message!&apos;); log.fatal(&apos;Fatal Message!&apos;); } } 

이제 위 프로그램을 컴파일하고 실행하면 c:/usr/home/log4j/log.out 파일에 다음과 같은 출력이 표시됩니다.

 Warn Message! Error Message! Fatal Message!