在我目前的项目中,我正在使用Maven和Spring。我目前正在使用SLF4J记录器进行日志记录服务。取而代之的是我想使用OWASP-ESAPI记录器。我不想使用OWASP-ESAPI
安全性,只需要使用日志服务。任何人都可以用最少的努力替换slf4j logger来指导我如何使用OWASP-ESAPI
记录器吗?我尝试了很多谷歌搜索,但没有任何帮助。我将非常感谢一些链接,以获得有关OWASP-ESAPI
记录器的知识。
答案 0 :(得分:3)
重构你的代码以删除slf4j是一个可怕的解决方案,因为你失去了将JUL,JCL,LOG4J流量捕获到公共日志漏斗的能力。先前的回应是不好的建议。
您可以启用ESAPI以使用JUL日志记录,然后通过在SLF4J上使用JUL,重新捕获该日志流量并路由到其他记录器(即log4j或logback)。 为此,请在ESAPI.properties中:ESAPI.Logger = org.owasp.esapi.reference.JavaLogFactory
另一种选择是通过ESAPI Logger接口构建SLF4J记录器代理。我认为你失去了比这种情况更多的功能。
答案 1 :(得分:0)
需要注意的关键是ESAPI只是为log4j或commons java.util日志记录构建的。我假设是log4j。
步骤1:从类路径中删除slf4j库。如果你正在使用IDE,这应该是#34; christmas-tree"您的申请并告诉您需要改变的一切。
步骤2:将esapi添加到类路径
步骤3:手动将所有slf4j日志记录调用转换为新的ESAPI对应项。您可以像这样获取对esapi记录器的引用:
Logger logger = ESAPI.getLogger("my.foo.class.Foo");
根据所提供的信息,这非常简单。
注意:Log4j不支持slfj支持的一些格式化调用。这将导致您手动重新创建输入或保留所有这些实例,直到稍后,然后仍然使用slf4j但只使用[MessageFormatter][1]
传递日志输入。