在我們的應用中的一些異常消息包含證書/私鑰或其他敏感信息不應該使其進入錯誤日誌。我想在寫入之前過濾日誌消息的內容,以便已知的敏感值和/或模式可以用[redacted]或某些此類文本值替換。一些搜索沒有發現任何東西。有沒有辦法做到這一點,並以通用的方式將其應用於所有配置的appender?如何編輯來自log4net的敏感信息?
我不希望有通過了解可能發生的所有這些異常,寫異常處理程序用於此目的進行過濾。異常不會被我們的代碼拋出,所以「不這樣做」不是一種選擇。
在我們的應用中的一些異常消息包含證書/私鑰或其他敏感信息不應該使其進入錯誤日誌。我想在寫入之前過濾日誌消息的內容,以便已知的敏感值和/或模式可以用[redacted]或某些此類文本值替換。一些搜索沒有發現任何東西。有沒有辦法做到這一點,並以通用的方式將其應用於所有配置的appender?如何編輯來自log4net的敏感信息?
我不希望有通過了解可能發生的所有這些異常,寫異常處理程序用於此目的進行過濾。異常不會被我們的代碼拋出,所以「不這樣做」不是一種選擇。
很簡單:不要把它們放在那裏擺在首位。
當然,你可以做一些正則表達式和啓發式等,並定期對您的日誌運行它們 - 所有這些會容易出現故障或破壞。
,也沒有任何理由在日誌中的密碼和私鑰
我希望(但還沒有嘗試過),你可以寫一個基於該sample here一個BufferingAppender
和可使用的方法override protected void Append(LoggingEvent loggingEvent)
到更改logingEvent以刪除敏感信息。
謝謝,將考慮到這一點。我希望有一些可以統一應用於多個現有的appender,但我失去了希望。 – jlew 2013-02-13 13:31:26
你有沒有考慮寫一個自定義log4net的過濾器?也許它基於StringMatchFilter?我不確定過濾器是否可以更改輸出,但您至少可以使用它來過濾日誌中的條目。 – sisve 2013-02-12 20:52:25
我覺得過濾器是用來包含/排除整個事件,而不是過濾內容。在那裏也有有用的信息,我只想扼殺頑皮的位 – jlew 2013-02-12 21:05:20