#java #logging #log4j #log4j2 #pojo
#java #ведение журнала #log4j #log4j2 #pojo
Вопрос:
Я работаю над решением Java, которое использует log4j 2.11 в качестве основы ведения журнала. Я также использую библиотеку, которая чрезвычайно часто использует определенный POJO. Я хотел бы иметь возможность передавать этот объект непосредственно в оператор log log.debug("POJO: %s", pojo)
, но, к сожалению, этот объект не реализует toString, и я не могу изменить код библиотеки.
Из того, что я смог сказать, у log4j 1.x было решение этой проблемы через ObjectRenderer. Вы могли бы реализовать ObjectRenderer, а затем в вашем файле log4j.properties определить строку, такую как log4j.renderer.com.library.Pojo=com.project.PojoRenderer
, а затем log4j вызовет ваш средство визуализации, чтобы предоставить это строковое значение.
Согласно https://logging.apache.org/log4j/2.x/manual/compatibility.html однако, похоже, эта функция не попала в log4j2. Есть ли эквивалентная функция, которую я мог бы использовать для прямой регистрации, не прибегая к оболочке или вспомогательному методу?
Комментарии:
1. вы нашли решение для этого? У меня тоже есть несколько средств визуализации. Не удалось найти способ перенести их в log4j2.