Hem doldurulmuş bir iletiyi hem de kural dışı durumun yığın izlemesini günlüğe kaydetmek için doğru yaklaşım nedir?
logger.error(
"\ncontext info one two three: {} {} {}\n",
new Object[] {"1", "2", "3"},
new Exception("something went wrong"));
Buna benzer bir çıktı üretmek istiyorum:
context info one two three: 1 2 3
java.lang.Exception: something went wrong
stacktrace 0
stacktrace 1
stacktrace ...
slf4j sürüm 1.6.1
{}
, lezzet meselesi ...
toString()
değişkenlerin yöntemi pahalı olabilir. Bu sözdiziminde, yalnızca her nesneye bir başvuru iletilir ve toString()
yöntem yalnızca belirli bir ileti gerçekten günlüğe kaydediliyorsa çağrılır. info()
Günlük çağrısında atıfta bulunulan nesnelerde toString()
, günlük düzeyi WARN
veya daha yüksekse yöntem çağrılmaz . {}
Sözdizimi bu olmadığını kullanıcılara bir hatırlatma String.format()
benzeri operasyon, onlar bunların nesneleri yerine dize temsillerini geçmelidir yani.