2014-06-25 151 views
2

在我當前的項目中,我使用Maven和Spring。我目前正在使用SLF4J記錄器來記錄服務。代替我想使用OWASP-ESAPI記錄器。我不想使用OWASP-ESAPI安全性,只是日誌服務。任何人都可以請指導我如何使用OWASP-ESAPI記錄器通過以最小的努力取代slf4j記錄器?我嘗試了很多谷歌搜索,但沒有任何幫助。我真的很感謝一些鏈接,以獲得關於OWASP-ESAPI記錄器的知識。需要OWASP-ESAPI記錄器幫助

回答

0

關鍵要注意的是,ESAPI僅爲log4j或commons java.util日誌記錄生成。我假設log4j。

第1步:從您的類路徑中刪除slf4j庫。如果你使用的是IDE,這應該是「聖誕樹」你的應用程序,並告訴你一切你必須改變。

第2步:添加ESAPI到classpath

步驟3:手動所有SLF4J記錄通話的轉換爲其新ESAPI對應。你會搶在ESAPI記錄器的引用是這樣的:

Logger logger = ESAPI.getLogger("my.foo.class.Foo");

所提供的信息,這是非常簡單的。

注意:Log4j不支持slfj支持的一些格式化調用。這將導致您手動重新創建輸入,或者在所有這些實例上保持關閉狀態,直到稍後再繼續使用slf4j,但只使用[MessageFormatter][1]來傳入日誌輸入。

3

重構您的代碼以刪除slf4j是一個可怕的解決方案,因爲那樣您就失去了將JUL,JCL,LOG4J流量捕獲到通用日誌漏斗的能力。事先的迴應是不好的建議。

  1. 您可以啓用ESAPI使用JUL記錄,然後,通過使用JUL了SLF4J,奪回日誌流量和路由到其他記錄器(即log4j的或的logback)。 要做到這一點,在ESAPI.properties:ESAPI.Logger = org.owasp.esapi.reference.JavaLogFactory

  2. 另一種選擇是建立在ESAPI記錄器接口的SLF4J記錄器代理。在這種情況下,我認爲你失去了更多的功能。

+0

感謝您的回覆,我們很久以前就放棄了OWASP ESAPI記錄器 – Amit

+0

根據不同的應用程序給出了不好的建議。當我寫這篇文章時,我正在研究的這個項目主要是log4j,帶有一點slf4j。因此,將所有內容轉換爲ESAPI日誌記錄纔有意義。我們不需要通用的日誌漏斗。我喜歡你的第一個選擇。 – avgvstvs