2016-09-20 18 views
8

Aşağıdaki kod var:Baskı slf4j ile bir dizi yalnızca yazdırır ilk eleman

private static final Logger logger = LoggerFactory.getLogger(Some.class); 
... 
String[] splits=someString.split(".."); 
logger.info("The string was split into <{}>",splits); // prints first element 

slf4j ile bir dizinin tam içeriğini yazdırmak için doğru yolu nedir?

+1

, slf4j (log4j, logback veya başka bir uygulamaya tarafından desteklenen ise) çıktısı dizinin içeriği. Bu nedenle, bize "ne işe yaramadığını" tam olarak anlatmanız gerektiğini söylemeniz gerekir. Herhangi bir slf4j mesajı görüyor musunuz? Herhangi bir çıkış? farkında mısınız [ 'Dize # bölünmüş()'] (http://docs.oracle.com/javase/8/docs/api/java/lang/String.html#split-java.lang.String-) aradığınız yöntemi düzenli ifade kabul eder ve o ".." bir anlamı vardır regex nedir? –

cevap

14

konu şu kod

logger.info("The string was split into <{}>", splits); 

ile size yöntemini info(String format, Object... arguments) yürütmesini olmasıdır. Son argümanın bir varargs olduğunu unutmayın. Bu nedenle, geçirdiğiniz dizi, değişken bağımsız değişkeninin her bir argümanı olarak yorumlanır.

Ancak bu durumda, ilk argüman olarak bir dizi geçmek istiyorum. Basit bir geçici çözüm Object için döküm olduğunu. beklendiği gibi

String[] splits = { "foo", "bar" }; 
logger.info("The string was split into {}", (Object) splits); 

, The string was split into [foo, bar] günlüğe kaydeder. Eğer dizi yazdırıyorsanız yolu gayet JimJim2000 @

+0

Ohhhhh! Evet, işte bu. –