2013-02-12 4 views
3

응용 프로그램의 일부 예외 메시지에는 자격 증명/개인 키 또는 기타 중요한 정보가 포함되어있어 오류 로그에 기록해서는 안됩니다. 필자는 기록 된 메시지의 내용을 필터링하기 전에 필터링하여 알려진 민감한 값 및/또는 패턴을 [편집 됨] 또는 일부 텍스트 값으로 바꿀 수 있습니다. 몇 가지 검색 결과가 없습니다. 이 작업을 수행하고 구성된 모든 어 펜더에 일반적인 방식으로 적용 할 수있는 방법이 있습니까?log4net에서 중요한 정보를 수정하는 방법은 무엇입니까?

이러한 모든 예외가 발생할 수있는 위치를 알고이 용도로 예외 처리기를 작성하여 필터링 할 필요가 없습니다. 예외는 우리 코드에 의해 던져지지 않으므로 "하지 않는 것"은 선택 사항이 아닙니다.

+0

사용자 정의 log4net 필터 작성을 고려해 보셨습니까? 아마도 StringMatchFilter를 기반으로할까요? 필터가 출력을 변경할 수 있는지 확신 할 수 없지만 적어도 로그에서 항목을 필터링하는 데 사용할 수는 있습니다. – sisve

+0

필자는 필터가 내용을 필터링하지 않고 전체 이벤트를 포함/제외하기위한 것이라는 인상을 받았습니다. 거기에도 유용한 정보가 있습니다. 그냥 장난 꾸러기가 된 비트를 없애고 싶습니다. – jlew

답변

1

매우 간단합니다. 처음에는 그곳에 두지 마십시오.

확실히, 정규식과 추론 등을 만들어 로그에서 주기적으로 실행할 수 있습니다.이 모든 것은 실패 나 파괴의 경향이 있습니다.

그리고 로그에 암호 키와 개인 키를 가지고 아무런 이유가 없다 당신이 sample here에 따라 BufferingAppender를 작성할 수 및에 방법 override protected void Append(LoggingEvent loggingEvent)를 사용할 수

+0

나는 그렇게하지 않을 것입니다. 이들은 제 응용 프로그램의 예외는 아니며 제 3 자 라이브러리에서 파생되었습니다. – jlew

+0

그런 경우에는 민감한 부분에서 전체 예외 로깅을 건너 뛰십시오. 무슨 일을하든 나중에 중요한 정보가 로그 파일에 도달하지 않도록하십시오. –

+0

그게 목표입니다. 오히려 log4net 수준에서 필터를 설치하기 위해 코드의 모든 위치를 찾으려고 시도하는 대신이 작업을 수행하려고합니다. – jlew

0

내가 기대 (하지만 그것을 시도하지 않은) 중요한 정보를 제거하려면 logingEvent를 변경하십시오.

+0

감사합니다. 나는 기존의 여러 appenders에 균일하게 적용될 수있는 무언가가 있기를 희망했지만, 나는 희망을 잃고 있습니다. – jlew

관련 문제