주어진 클래스에 대한 오류를 기록하려면 다음과 같이 클래스 이름에 액세스합니다. 클래스 이름을 String으로 반환하여 '로깅에 사용할 수있는 좋은 방법'입니까? ?로깅을위한 클래스 이름 얻기
private static final String CLASS_NAME = MyClass.class.getName();
logger.error("Error occurred in "+CLASS_NAME);
주어진 클래스에 대한 오류를 기록하려면 다음과 같이 클래스 이름에 액세스합니다. 클래스 이름을 String으로 반환하여 '로깅에 사용할 수있는 좋은 방법'입니까? ?로깅을위한 클래스 이름 얻기
private static final String CLASS_NAME = MyClass.class.getName();
logger.error("Error occurred in "+CLASS_NAME);
log4j.xml 자체에서 로깅 매개 변수를 설정할 수 있습니다.
logger.error("Error occured in " + this.getClass().getName());
:
2012-05-23 16:34:51,632 [main] ERROR com.idc.sage.sso.dynamo.SsoDbStorage - cannot get configuration for max SSO age
내가 이런 식으로 할 것 - 그것은 SWCD-web.log 파일에서이 같은 예외를 기록 할
<appender name="swcd-web" class="org.apache.log4j.DailyRollingFileAppender">
<param name="Threshold" value="DEBUG"/>
<param name="Append" value="true"/>
<param name="File" value="${catalina.home}/logs/swcd-web.log"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n"/>
</layout>
</appender>
- 특급 들어
무언가가 바뀌면 더 쉽게 이해할 수 있지만 다른 방법이 있습니다. 당신이 로거 이런 식으로 초기화하면
:
private static Logger logger = Logger.getLogger(MyClass.class.getName())>
다음 클래스의 이름이 모든 이벤트 로그에있을 것이다, 당신은 명시 적으로 모든 로그 호출에 넣을 필요가 없습니다 :
포함logger.error("Error occured while doing this and that");
당신이 (당신은 아파치의 log4j를 사용하는 경우 java.util.logging
, 또는 log4j.properties의 경우 logging.properties에) 로깅 서비스를 구성 할 수 있습니다 모든 로그 메시지의 클래스 이름
사용중인 로깅 라이브러리를 언급하지 않았으므로 slf4j을 사용하는 것이 좋습니다. 나는 당신이 얻을 수있는 가장 쉬운 방법이라고 생각합니다. 당신은 단순히이 같은 SLF4J의 LoggerFactory
에서 로거 객체를 요청 :
private static final Logger LOGGER = LoggerFactory.getLogger(YouerClass.class);
지금 당신은 로깅 로거 객체를 사용할 수 있습니다. 예를 들어 오류 로깅
는
다음과 같습니다
LOGGER.error(yourMessage, throwable);
당신은 간단한 문자열 메시지 나 전체 예외를 보낼 수 있습니다.
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.lang.invoke.MethodHandles;
...
private final static Logger LOG =
LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
오류가 발생합니다. LoggerFactory 유형에 대해 getLogger (Class
매우 이상합니다. Java 8을 사용하고 있습니까? 그리고 로그백? – MariuszS
Logback을 사용하지 않음, 감사합니다 –
문제는 log4j에 대한 없습니다. –