2011-05-10 8 views
55

Jakie jest prawidłowe podejście do rejestrowania zarówno komunikatu o błędzie, jak i wyjątku przy użyciu SLF4J?Jak rejestrować wyjątki i wiadomości z symbolami zastępczymi za pomocą SLF4J

Próbowałem to zrobić, ale śladu stosu wyjątku nie jest drukowana:

logger.error("Unable to parse data {}", inputMessage, e);

W tym przypadku chcę wypełnić {} z inputMessage jak wylogowaniu się StackTrace wyjątku.

Jedynym sposobem, widzę to zrobić byłoby, aby to zrobić:

logger.error("Unable to parse data " + inputMessage, e);

który nie jest ładna.

Odpowiedz

94

Od wersji SLF4J 1.6 SLF4J interpretuje ostatni parametr zgodnie z jego przeznaczeniem, tj. Jako wyjątek. Musisz używać starszej wersji API SLF4J.

+0

Wielkie dzięki za wskazanie tego. – pjp

+5

Czy jest to opisane w Javadoc? Spodziewałem się znaleźć podobne informacje tutaj: http://www.slf4j.org/apidocs/org/slf4j/Logger.html – Scot

+0

Wierzę, że ty, ale tak jak @Scot, miałem nadzieję, że to zachowanie zostanie udokumentowane. – Stephan

0

Działa również z wersją 1.7 programu SLF4J. Więc nie musisz degradować do starszej wersji.

+0

To więcej komentarza niż odpowiedzi. –

Powiązane problemy