2013-05-24 3 views
1

대기열 시스템을 통해 메시지를받을 응용 프로그램이 있습니다. 각 메시지를 메시지 이름 인 파일 이름과 함께 자체 파일에 기록하고 싶습니다. 파일 이름 내에서 이벤트 컨텍스트를 사용하여이를 수행하는 방법을 알아 냈습니다.NLog - 동적 파일 이름을 가진 로그 파일 정리

maxArchiveFiles 설정은 아무런 영향을 미치지 않지만 아마도 파일을 보관하지 않기 때문일 수 있습니다. 이 구성을 사용하면 NLog를 사용하여 파일 수를 날짜 또는 개수로 제한 할 수 있습니다.

<target name="testfile" xsi:type="File" 
      layout="${message}" 
      fileName="c:\SupportLogs\${event-context:item=MessageId}.txt" 
      maxArchiveFiles="50" 
      keepFileOpen="false" 
      encoding="iso-8859-2" /> 


    NLog.Logger oLogger = NLog.LogManager.GetLogger("Test"); 
    NLog.LogEventInfo oEvent = new NLog.LogEventInfo(NLog.LogLevel.Debug, "", "My Message"); 
    oEvent.Properties["MessageId"] = Guid.NewGuid().ToString(); 
    oLogger.Log(oEvent); 

답변

1

불행히도 이것은 NLog에서 현재 가능하지 않습니다. 로그 파일을 직접 정리해야합니다.

+0

감사합니다. 작동하지 않는 것 같습니다. archiveFileName = "c : \ SupportLogs \ $ {이벤트 컨텍스트 : item = MessageId} .txt"archiveEvery = "Minute" – trouta

+0

예, 보관 중에 미안 이벤트 컨텍스트를 사용할 수 없으므로 항상 비어 있습니다. 나는 내 대답을 바꾸고있다. – Xharze