2011-04-13 3 views
1

내 메시징 응용 프로그램에 추적 기능을 추가하려고합니다. 내가 사용하는 각 메시지에는 고유 한 식별자가 있으며이 메시지는 후속 메시지 (원래 메시지에서 생성 된 메시지)로 전달됩니다.log4net - 추적 용도로 많은 로거를 만드는 것이 좋습니다.

여러 프로세스와 잠재적으로 서버에서 메시지의 수명 동작을 모니터링하려면 log4net remoting appender를 사용하고 싶습니다.

  • Logger: "MessageLivetime"Message: "SomeId | message text")
    • 그러나 내가 메시지 당 로거를 만든 경우 스마트 될 것이라고 생각 :

      나는 하나 로거를 사용하여 메시지 자체에 메시지 ID를 인코딩 할 수

      • Logger: "MessageLivetime.SomeId"Message: "message text")

      그러나 LogManager 클래스는 로거를 제거 할 방법이 없기 때문에 수천 개의 버려진 로거가 만들어 지므로 문제가 발생하는 것에 대해 걱정합니다.

      log4net에 대한 더 많은 통찰력을 가진 사람이이 접근 방식을 사용할 수 있다면 나에게 힌트를 줄 수 있습니까?

      컨텍스트 속성을 이미 발견했습니다. 그것들은 더 나은 선택일까요? 그리고 이벤트 컨텍스트에 어떻게 쓰나요?

    답변

    5

    로거 자체에 ID를 포함하면 어떤 이점도 보이지 않습니다. 그것은 내게 잘못된 길을 느낀다.

    This tutorial 로깅 컨텍스트가 도움이 될 수 있습니다. 단일 메시지에 대한 모든 것이 단일 스레드에서 발생한다고 가정하면 메시지 ID에 대한 컨텍스트 속성을 설정하고 적절한 로깅 형식을 사용할 수 있으며 메시지 ID는 로그에 표시됩니다.

    +0

    감사합니다. 컨텍스트 속성에 정착했습니다. – Zebi

    관련 문제