채워진 메시지와 예외의 스택 추적을 모두 기록하는 올바른 방법은 무엇입니까?
logger.error(
"\ncontext info one two three: {} {} {}\n",
new Object[] {"1", "2", "3"},
new Exception("something went wrong"));
다음과 비슷한 출력을 생성하고 싶습니다.
context info one two three: 1 2 3
java.lang.Exception: something went wrong
stacktrace 0
stacktrace 1
stacktrace ...
slf4j 버전 1.6.1
3
slf4j가 표준 % s 스타일 대신 자체 형식 문자열 구문을 사용하는 이유를 이해하지 못합니다. 성가신.
—
Keith Tyler
@KeithTyler 나는
—
Betlista
{}
맛의 문제를 더 좋아합니다 ...
@KeithTyler
—
user149408
toString()
인수 의 방법은 비쌀 수 있습니다. 이 구문을 사용하면 각 객체에 대한 참조 만 전달되고 toString()
특정 메시지가 실제로 기록되는 경우에만 메소드가 호출됩니다. info()
로그 호출 에서 참조되는 개체 toString()
는 로그 수준 WARN
이상인 경우 해당 메서드를 호출 하지 않습니다 . {}
구문이가 아니라는 것을 사용자에게 상기시켜 String.format()
-like 작동, 그들은 그 목적이 아닌 문자열 표현을 통과해야 즉.