2009-06-25 4 views
4

단일 매개 변수로 LogMessage 객체를 사용하는 SOAP 웹 서비스를 제공함으로써 Flex 클라이언트에서 발생하는 오류를 기록하는 방법을 제공하려고합니다. 클라이언트 측 에러 표면과 LogClientError 방법 log4net 통해 오류를 기록하는 호출한다개체의 속성을 로그 출력에 매핑 할 수 있도록 log4net을 어떻게 구성합니까?

public class LogMessage 
{ 
    public string Message { get; set; } 
    public string Exception { get; set; } 
    public string Version { get; set; } 
    public string User { get; set; } 
} 

이러한 목적은 플렉스 클라이언트 채워.

[WebMethod()] 
public void LogClientError(LogMessage message) 
{ 
    rollingLogger.Error(message); 
} 

현재이는 LogMessage 클래스의 완전한 이름을 인쇄, 나의 현재의 가정은 그 log4net 단순히 전달 된 객체로 .toString()를 호출합니다.

을하지만, 내가 정말 원하는 log4net이 원하는 정보를 올바르게 기록 할 수 있도록 LogMessage 클래스의 각 속성을 패턴에 매핑해야합니다. 일반적인 애펜더 (DB, File, SMTP)가 모두 지원되는 방식으로이 작업을하고 싶습니다.

개체의 속성을 로그 출력에 매핑 할 수 있도록 log4net을 어떻게 구성합니까?

답변

3

log4net에는 두 가지 경로가 있습니다. 첫 번째는 LogMessage 인스턴스에 대한 사용자 정의 객체 렌더러를 만드는 것입니다. the IObjectRenderer interfaceregister the implementation을 구현해야합니다.

더 많은 재사용이 가능한 다른 경로는 patternlayout 클래스를 서브 클래 싱하는 것입니다. 그런 다음 사용자 정의 패턴 레이아웃은 레이아웃이 수신 메시지 객체를 반영하는 데 사용할 수있는 이름 지정 등록 정보에 대한 특수 구문을 지원할 수 있습니다.

0

LogMessage가 부분적인 경우 LogMessage에서 ToString() 메서드를 만들 수 있습니다.

관련 문제