Plugins 如何扩展log4j2来加密消息参数

Plugins 如何扩展log4j2来加密消息参数,plugins,log4j2,Plugins,Log4j2,我想通过插件(或其他必要的方式)扩展log4j2,以便加密某些消息参数 我已经浏览了Apache的log4j2文档,但不得不承认,我仍然很困惑,甚至不知道要编写什么样的插件才能做到这一点 我需要的是在将消息参数插入到实际消息中时访问它们。然后,我的代码将检查每个参数,并在适当的地方对其进行加密/哈希/屏蔽 例如,假设应用程序开发人员记录如下内容: LOGGER.info("Account {} has a balance of {} Euros", acctNo, balance); 然后ac

我想通过插件(或其他必要的方式)扩展log4j2,以便加密某些消息参数

我已经浏览了Apache的log4j2文档,但不得不承认,我仍然很困惑,甚至不知道要编写什么样的插件才能做到这一点

我需要的是在将消息参数插入到实际消息中时访问它们。然后,我的代码将检查每个参数,并在适当的地方对其进行加密/哈希/屏蔽

例如,假设应用程序开发人员记录如下内容:

LOGGER.info("Account {} has a balance of {} Euros", acctNo, balance);
然后acctNo和balance应该传递给我的插件,我会加密账号并屏蔽余额。这应该独立于日志是否进入文件或控制台或其他位置,即独立于所使用的附加器


请给我指一下正确的方向。。。我应该为此编写自己的自定义布局吗?我更愿意继续使用log4j的布局,比如模式布局。我真的只想更改参数值。

这里的正确答案是“编写您自己的MessageFactory”,这不是严格意义上的插件。有关如何使用自己的MessageFactory的详细信息,请参见“扩展log4j2”一章中的log4j2文档

我只是觉得从文档中看不太明显,不得不浏览Log4j2源代码来找到答案