Hem toplu ileti hem de istisnanın yığın izini günlüğe kaydetmek için doğru yaklaşım nedir?slf4j: biçimlendirilmiş iletinin günlüğe kaydedilmesi, nesne dizisi, istisna
logger.error(
"\ncontext info one two three: {} {} {}\n",
new Object[] {"1", "2", "3"},
new Exception("something went wrong"));
Ben buna benzer bir çıktı elde etmek istiyorum: Birden fazla parametreye varlığında ve eğer
context info one two three: 1 2 3
java.lang.Exception: something went wrong
stacktrace 0
stacktrace 1
stacktrace ...
slf4j versiyonu SLF4J 1.6.0 itibariyle 1.6.1
1.6.1 ile denedim ve çıktı aşağıda gösterilmiştir. Yığın izlemenin eksik olduğunu unutmayın: ' 2011-06-16 17: 20: 57,570 DEBUG [main] SLF4JDemo.main (12): içerik bilgisi bir iki üç: 1 2 3 java.lang.Exception: bir şey yanlış gitti ' – rowe
Hangi temel kayıt çerçevesi kullanıyorsunuz? Yukarıdaki cevabımda da belirtildiği gibi, eğer son parametre bir istisna ise, altta yatan çerçeveden bağımsız olarak yorumlanacaktır. (Logback ile test edildi, slf4j-log4j12, slf4j-jdk14 ve slf4j-simple.) – Ceki
Maalesef, örneğinizde, format dizisindeki n = 3 yer tutucu ve nesne dizisinde n + 1 = 4 öğenin kullanıldığını fark etmedim . Biçim dizisinde n yer tutucularım ve ayrıca nesne dizisindeki n öğeleri ve üçüncü parametre olarak bir istisna vardı. Benim beklentim istisnanın stacktrace ile basılmış olmasıydı, ama bu asla olmadı. Bu tasarlandığı gibi çalışır mı? Ayrıca, eğer n yer tutucusuna ve n öğelerine sahipse, nesne dizisinde sonuncu eleman olmak istisnadır, ben herhangi bir stacktrace görmüyorum. Belki bir dizideki n + 1 nesneleri olan n yer tutucuları biraz daha fazla vurgulanmalıdır. – rowe