2014-02-18 1 views
3

현재 Castle의 Logging Facility과 log4net을 결합한 응용 프로그램의 로깅을 위해 새로운 .NET 4.5 EventSource 클래스를 사용하는 가장 좋은 방법은 무엇입니까?캐슬 ILogger 및 log4net을 사용하여 시맨틱 로깅으로 마이그레이션

처음에는 CastleSource의 ILogger 인터페이스를 확장하여 EventSource가 쉽게 처리 할 수있는 더 풍부한 의미 론적 로깅을 지원할 수 있다고 생각했지만 지금은 실제로 잘 작동하는지 여부를 확신 할 수 없습니다.

나는 Semantic Logging Application Block이 EventSource를 사용하는 한 가지 구현을 제공하지만, 물론 ILogger를 사용하지 않는다는 점에 유의하십시오.

답변

2

SLAB 구현뿐만 아니라 일반적으로 의미 론적 로깅으로 이동하려면 Serilog으로 옮기기가 더 쉽습니다. (면책 조항 - 이제 프로젝트가 시작되었지만, 현재는 잘 설립되었습니다).

Serilog는 EventSource과 친구들과 동일한 의미 로깅 개념을 구현하지만 Castle에서 얻은 고전적인 "ILogger"스타일 API를 사용합니다.

log.Information("The cart contains {CartSize} items", cart.Count); 

이 예제는 EventSource 메소드에 매개 변수를 전달받을 것대로, 이벤트와 CartSize라는 구조적 속성을 연결합니다. ({0} 숫자 형식 지정자를 사용하여 이름이 지정된 속성 대신 번호가 매겨진 구조화 된 이벤트를 얻을 수도 있습니다.)

API가 호환되므로 기존 앱을 ILogger의 스타일에서 다른 스타일로 옮기는 것이 마찰이 적습니다. 모든 것을 EventSource에 이식합니다. 여러 가지 방법으로 접근 할 수 있습니다. 옵션을 결정하면 후속 질문에 유의할 것입니다.

관련 문제