[java] logger.info와 logger.debug의 차이점

logger.debug과 의 차이점은 무엇입니까 logger.info?

언제 logger.debug인쇄됩니까?



답변

이것은 로깅 구성에 따라 다릅니다. 기본값은 사용중인 프레임 워크에 따라 다릅니다. 아이디어는 나중에 구성 설정을 INFO에서 DEBUG로 변경하면 전체 응용 프로그램을 다시 컴파일하지 않고 인쇄되는 줄이 더 많거나 적다는 것을 볼 수 있다는 것입니다.

어떤 것을 사용할지 생각하면 어느 수준에서보고 싶은지 생각하는 것으로 귀결됩니다. 예를 들어 Log4J의 다른 레벨은 API, http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/Level.html을 참조하십시오.


답변

“log4j에 대한 간략한 소개” 라는 기사를 참조하십시오 . 여기에는 로그 수준에 대한 간단한 설명이 포함되어 있으며 실제로 사용하는 방법을 보여줍니다. 로그 수준의 기본 개념은 상황에 따라 로그에 포함되는 세부 정보의 양을 구성 할 수 있다는 것입니다. 예를 들어 문제를 해결하려는 경우 로그를 매우 자세하게 표시 할 수 있습니다. 프로덕션에서는 경고 및 오류 만보고 싶을 수 있습니다.

시스템의 각 구성 요소에 대한 로그 수준은 일반적으로 구성 파일의 매개 변수를 통해 제어되므로 쉽게 변경할 수 있습니다. 코드에는 수준이 다른 다양한 로깅 문이 포함됩니다. 에 응답 할 때 Exception, 당신은 호출 할 수 있습니다 Logger.error. 주어진 지점에서 변수 값을 인쇄하려면을 호출 할 수 있습니다 Logger.debug. 프로그램 내에서 구성 가능한 로깅 수준과 로깅 문을 결합하면 애플리케이션이 활동을 기록하는 방법을 완전히 제어 할 수 있습니다.

최소한 log4j의 경우 로그 수준의 순서는 다음과 같습니다.

DEBUG < INFO < WARN < ERROR < FATAL

다음은 로그 수준의 작동 방식을 보여주는 해당 문서의 간단한 예입니다.

   // get a logger instance named "com.foo"
   Logger logger = Logger.getLogger("com.foo");

   // Now set its level. Normally you do not need to set the
   // level of a logger programmatically. This is usually done
   // in configuration files.
   logger.setLevel(Level.INFO);

   Logger barlogger = Logger.getLogger("com.foo.Bar");

   // This request is enabled, because WARN >= INFO.
   logger.warn("Low fuel level.");

   // This request is disabled, because DEBUG < INFO.
   logger.debug("Starting search for nearest gas station.");

   // The logger instance barlogger, named "com.foo.Bar",
   // will inherit its level from the logger named
   // "com.foo" Thus, the following request is enabled
   // because INFO >= INFO.
   barlogger.info("Located nearest gas station.");

   // This request is disabled, because DEBUG < INFO.
   barlogger.debug("Exiting gas station search");


답변

가능한 모든 레벨 세트에 대한 설명입니다.

ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF


답변

기본적으로 로거 구성 방법에 따라 다릅니다. 일반적으로 개발 중에는 디버그 출력이 작성되었지만 프로덕션에서는 꺼져 있거나 특정 영역을 디버깅하는 동안 작성된 디버그 범주를 선택 했을 수 있습니다 .

다른 우선 순위를 갖는 요점은 합리적으로 세분화 된 방식으로 특정 구성 요소의 세부 정보 수준을 높이거나 낮출 수 있도록 허용하고 차이점을 확인하기 위해 로깅 구성 (코드가 아닌) 만 변경하면되는 것입니다.


답변

이것은 매우 오래된 질문이지만 여기에 내 이해가 보이지 않으므로 2 센트를 더할 것입니다.

모든 레벨은 사용자 유형에 해당 / 매핑됩니다.

  • 디버그 : 개발자-수동 디버깅
  • trace : 자동 로깅 및 단계 추적기-3 단계 지원용
  • 정보 : 기술자 / 지원 레벨 1/2
  • 경고 : 기술자 / 사용자 오류 : 자동 경고 / 지원 수준 1
  • 위험 / 심각 : 설정에 따라 다름-로컬 IT


답변

  1. INFO는 프로그램이 예상대로 작동하는 정보를 기록하는 데 사용됩니다.
  2. DEBUG는 프로그램이 예상대로 작동하지 않거나 예외가 발생한 경우 이유를 찾는 데 사용됩니다. 개발자의 이익을위한 것입니다.


답변

logger.debug와 logger.info의 차이점은 무엇입니까?

이들은 이미 정의 된 일부 기본 수준 일뿐입니다. 원하는 경우 자신 만의 레벨을 정의 할 수 있습니다. 이러한 수준의 목적은 코드를 변경하지 않고 하나 이상의 수준을 활성화 / 비활성화하는 것입니다.

logger.debug가 인쇄 될 때 ??

구성에서 디버그 또는 더 높은 수준을 활성화 한 경우.