2012-02-25 3 views
6

Я хочу записать «довольно печатный» XML, используя Logback/SLF4J. Прямо сейчас, что я получаю в журналах, совершенно нечитабельно, и я должен открыть что-нибудь, чтобы его разобрать. Я хочу, чтобы иметь возможность настраивать ведение журнала для отладки (потому что я хочу видеть XML только в отладке) для вывода XML в удобном для восприятия человеком способом.Как записывать многострочный текст в Logback/SLF4J?

Возможно ли это?

ответ

9

Просто добавьте строку \n в журнале высказыванием:

log.info("Message id: {}\nContents: {}", id, xml); 

UPDATE: Для того, чтобы довольно-печать XML взглянуть на: How to pretty print XML from Java?. Одна вещь, о которой нужно помнить, нет необходимости выполнять дорогостоящее форматирование, если XML не будет на самом деле напечатан. Поэтому это один из редких случаев, когда необходимо использовать is*Enabled():

if(log.isInfoEnabled()) 
    log.info("Message: {}", prettyFormat(xml)); 
+0

Ну, это просто создаст 2 линии. Один с id и другой с xml. Это не очень красивая печать ;-) – Krystian

+0

@ Krystian: извините, я вас неправильно понял. Посмотрите мой обновленный ответ. –

+0

Ухх .. Я совершил роковую ошибку. Я знал, что в ответ я получаю довольно печатный XML, однако кажется, что читатель, которого я использовал, чтобы получить ответ, удалял все символы новой строки. Это не было проблемой регистрации. Как только я изменил код, чтобы передать оригинальный ответ на регистратор, все стало нормально работать. Я отметил ваш ответ как правильный, потому что для людей, которые получают исходный xml, он будет работать нормально. Благодарю. – Krystian

Смежные вопросы