우리의 전통적인 방법을 수행하는 기능 인터페이스와 람다 식을 사용하는 것입니다 :자바 - 로깅을 기록 할
if (logger.isDebugEnabled()) {
logger.debug("something to log, and barbarbar {}", object);
}
하지만 코드와 복잡한 선을 줄이기 위해 로깅을 수행하는 람다 식을 사용하는 방법에 대한?
logger.debug(() -> return "something to log, and barbarbar " + object);
SLF4J 또는 다른 로거 로깅을 할 수있는이 방법을 제공하지 않는 이유가 있나요? 개체 생성 오버 헤드가 발생 했습니까?
람다 식은 무료가 아닙니다. 그들은 메모리 공간도 차지합니다. 이 게시물에는 가질 수있는 부작용을 보여주는 몇 가지 의견과 답변이 있습니다. https://stackoverflow.com/questions/47682777/why-bother-using-lambda-expressions-in-logging-apis-if-the-compiler-can- 가능성/47701408 # 47701408 – tsolakp
맞아,이 메모리 사용량을 늘리십시오 ... BTW 비용이 적게 들고 객체 생성 비용을 무시할 수 있다고 생각합니다. https://stackoverflow.com/questions/3485844/object-creation -in-java-is-slow/3485895 # 3485895 –