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);
감사합니다. 작동하지 않는 것 같습니다. archiveFileName = "c : \ SupportLogs \ $ {이벤트 컨텍스트 : item = MessageId} .txt"archiveEvery = "Minute" – trouta
예, 보관 중에 미안 이벤트 컨텍스트를 사용할 수 없으므로 항상 비어 있습니다. 나는 내 대답을 바꾸고있다. – Xharze