Sha*_*man 5 java logging log4j pojo log4j2
我正在使用 log4j 2.11 作为其日志记录框架的 Java 解决方案。我还使用了一个极其频繁地使用特定 POJO 的库。我希望能够将该对象直接传递到日志语句中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。是否有一个等效的功能可以用来直接记录它,而不必求助于包装器或辅助方法?