2012-02-29 2 views
1

확인 NLog하기 위해, 지금은 layoutRender이패스 값이 정의 LayoutRenderer

  1. 클래스를 쓰기 사용자 정의를 작성하는 방법을 알고 MylayoutRender은 추가] 재정
  2. , 클래스, 방법을 LayoutRenderer을 상속
  3. 등록시 사용자 정의 레이아웃 시작시 렌더러

    ConfigurationItemFactory.Default.LayoutRenderers.RegisterDefinition("application", typeof(MyLayoutRenderer));

curently, 나는

protected override void Append(StringBuilder builder, LogEventInfo logEvent) 
    { 
     var product = CommonMethods.ReadConfig("product"); 
     builder.Append(product); 
    } 

설정

에서 값을 읽는 방법을 동적으로 값을 설정?

답변

3

이 답변에는 읽을 구성 값을 지정하는 매개 변수를 구성 할 수있는 LayoutRenderer 예제가 포함되어 있습니다. 당신이 당신의 자신의 LayoutRenderer을 쓴 MyLayoutRenderer를 호출하고 "제품"값을 기록하기를 원한다면 @DaveHogan은 무엇을 게시에서

NLog config file to get configuration setting values from a web.config

, 당신은 그것을 이런 식으로 뭔가를 구성합니다 :

${MyLayoutRenderer:product} 

key는 구성에서 읽을 속성을 나타내는 LayoutRenderer의 속성을 꾸미는 [DefaultParameter] 속성입니다.

이 글은 매개 변수를 취한 다음 해당 매개 변수를 조회 용 키로 사용하는 NLog LayoutRenderer를 만드는 예를 보여줍니다. (문제의 주제는 log4net이지만 NLog에서 할 수있는 일의 예를 게시하고 log4net에서 비슷한 점을 보여주는 답변을 원했습니다.) 이 예제는 NLog 1.1에 대한 것입니다. NLog 2.0에서는 약간 다릅니다.

this link to the NLog code repository이 유용 할 수도 있습니다.

+0

은 내가 한 것과 같습니다 : 설정 파일 (CommonMethods.ReadConfig ("product");)에서 읽음 – prime23

+0

다른 것을하고 싶습니까? 내가 config 파일에서 값을 읽을 수 있도록 LayoutRenderer를 구성 할 수 있기를 원하는 질문을 읽는 방법. 값 이름을 NLog.config 파일의 LayoutRenderer에 대한 매개 변수로 지정하면 LayoutRenderer에 대한 아이디어가 생깁니다. 당신이 찾고있는 다른 것이 있습니까? 원하는 것을 할 수있는 더 좋은 방법이있을 수 있습니다. – wageoghe

+0

늦게 답변 해 주셔서 진심으로 감사드립니다. 내가하고 싶었던 것은 Append 메서드에서 값을 설정했지만 layoutRender에 매개 변수를 제공하지 않았습니다. 그러나 내 사용자 지정 layoutRender (응용 프로그램 이름)는 const이므로 NLog.config에 SQL 삽입을 하드 코딩했습니다. 다시 감사합니다. – prime23