2009-10-05 2 views

답변

17

클래스를 사용하여 LINQ to SQL에서 원하는 메서드를 통해 전달해야하는 TextWriter로 작동하면됩니다. 여기

db.Log = new ActionTextWriter(s => logger.Debug(s)); 

내가 위의 코드를 사용할 수 있도록 그에게 위임하고 파견 소요 쓴 작은 텍스트 작가이다. 이 클래스를 변경하여 로거를 가져오고 텍스트를 일부 처리/분할 한 다음 NLog로 전달하는 것이 좋습니다.

class ActionTextWriter : TextWriter { 
    private Action<string> action; 

    public ActionTextWriter(Action<string> action) { 
    this.action = action; 
    } 

    public override void Write(char[] buffer, int index, int count) { 
    Write(new string(buffer, index, count)); 
    } 

    public override void Write(string value) { 
    action.Invoke(value); 
    } 

    public override Encoding Encoding { 
    get { return System.Text.Encoding.Default; } 
    } 
} 
+0

굉장, 고마워. :) – Jedidja