我正在开发一个(内部)库,我想强制使用此库的开发人员在记录错误或致命级别消息时包含文本 ID。在不修改 log4j 的情况下,我们要强制执行的内容类似于:
logger.error("E1234: 发生错误");
如果没有或只对 log4j 进行少量扩展,我们可以在夜间构建期间扫描源代码以验证是否包含文本 ID,或者实现在运行时验证它的 log4j 附加程序。
然而,我们想要的是在错误方法中添加一个额外的参数。例如:
logger.error("E1234", "发生错误");
这可以通过为 log4j Logger 类实现一些外观类来处理。
有没有其他人有类似的问题?你的解决方案是什么?现在,我们更喜欢第一个代码示例。将来我们可能会实现代码分析器以在夜间构建期间执行(或者是否有人知道一些现有的代码分析器可以配置为从 error() 方法调用中检测丢失的文本 ID?)